css - 如何修复生产服务器上的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 映像的云服务器上,并且在本地以我访问网站的任何方式工作。任何想法或设置可能会有所帮助?提前致谢
解决方案
它使用相对路径,因此如果您的“基本”路径是 /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')) }}" />
推荐阅读
- intellij-idea - 将 OneDrive 连接到 Intellij
- ios - 我们可以使用带有反应原生导航的通用链接吗?
- javascript - 使用选择过滤全日历事件
- api - 调用另一个 API 的 API 的 HTTP 方法是什么?
- eclipse - 在我新安装的 Eclipse 中,缺少 3 个文件夹。Java 资源、JAX-WAS Web 服务和部署描述符
- python - 是否有任何脚本或代码可以使用程序打开 Android 应用程序?
- python - 如何在python数据表中填充空值?
- assembly - MASM 不会插入带有某些 CPU 和 FPU 指令组合的 x87 WAIT 前缀
- google-chrome - 谷歌浏览器显示问题
- mongodb - 如何从另一个 mongodb 集合中获取字段并将这些字段值作为数组添加到当前集合中?