Как исправить проблему загрузки CSS на производственном сервере - PullRequest
5 голосов
/ 04 июля 2019

мой веб-сайт теперь размещен на сервере, и URL-адрес выглядит так

test1.test.com 

но теперь я должен переместить его на другой хостинг, у которого у них нет этой способности, и мне пришлось изменить его на:

test.com/test1

до сих пор все работает, кроме файлов CSS и JS. Я получаю ошибку 404. Не найдено.

и в моем случае я ничего не менял, и вот как я загружаю файлы CSS

        <link rel="stylesheet" href="{{ asset('css/main.css') }}">

Кто-нибудь знает, как я могу это исправить? конечно, я пытался добавить (test1) перед {{ asset('css/main.css')}}, но это ничего не изменило.

PS: исходный код не сохраняется в подкаталоге, который / test1 просто направляет на балансировщик нагрузки.

и вот файл настроек apache2 для образа докера:

    <VirtualHost *:80>
    DocumentRoot /var/www/html/web
    <Directory /var/www/html/web>
        AllowOverride None
        Require all granted

        <IfModule mod_rewrite.c>
            Options -MultiViews
            RewriteEngine On
            RewriteCond %{REQUEST_FILENAME} !-f
            RewriteRule ^(.*)$ app.php [QSA,L]
        </IfModule>
    </Directory>

    ErrorLog /var/log/apache2/app_error.log
    CustomLog /var/log/apache2/app_access.log combined
</VirtualHost>

развертывание на облачном сервере с использованием образа докера, и локально оно работает любым способом, которым я обращаюсь к сайту. какие-либо идеи или установка это может помочь? заранее спасибо

Ответы [ 2 ]

5 голосов
/ 09 июля 2019

Используется относительный путь, поэтому, если ваш «базовый» путь - / test1, относительный путь будет выглядеть в папке с именем /test1/css/ для файла css.

В зависимости от вашей версии Symfony, функция asset() позволяет параметру конфигурации absolute сделать путь абсолютным, поэтому: что произойдет, если вы включите статические файлы, такие как:

<link rel="stylesheet" href="{{ asset('css/main.css', absolute=true) }}" />

, если вы используете версию более позднюю, чем 3.0, используйте:

<link rel="stylesheet" href="{{ absolute_url(asset('css/main.css')) }}" />
0 голосов
/ 12 июля 2019

Я просто хочу поблагодарить каждого, кто пытался помочь мне с моей проблемой, но теперь я нашел проблему и решение:

проблема не имеет ничего общего с symfony, но она была связана с хостингомсервис, по-видимому, заключается в том, что поставщик услуг использует вход и Kubernetes, а вход не поддерживает загрузку статических файлов (css, js).есть обходные пути, если у вас есть доступ к файлам настроек сервера, но в моем случае их не было.

Мое решение состояло в том, чтобы обслуживать статические файлы как службу.что-то вроде личного CDN для моих активов и всех статических файлов.

Еще раз спасибо, и если у кого-то будет такой же случай, я буду более чем рад помочь.

...