首页 > 解决方案 > 如何修复生产服务器上的css加载问题

问题描述

我的网站现在托管在服务器上,URL 是这样的

test1.test.com 

但现在我必须将其移至另一个他们没有此能力的主机,我不得不将其更改为:

test.com/test1

到目前为止,除了 CSS 和 JS 文件外,一切正常,我得到 404 not found 错误。

就我而言,我没有改变任何东西,这就是我加载 CSS 文件的方式

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

有谁知道我该如何解决这个问题?当然,我尝试在{{ asset('css/main.css')}} 之前添加 (test1) 但它没有改变任何东西。

PS:源代码没有保存在 /test1 的子目录下,它只是路由到负载均衡器。

这里是 docker 镜像的 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>

部署在使用 docker 映像的云服务器上,并且在本地以我访问网站的任何方式工作。任何想法或设置可能会有所帮助?提前致谢

标签: csssymfonydeploymentrouting

解决方案


它使用相对路径,因此如果您的“基本”路径是 /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')) }}" />

推荐阅读