A-A+

vanillaforums2.1版安装后样式丢失的原因

2013年07月02日 VanillaForums 暂无评论 阅读 228 次浏览 次

最近很多朋友反映vanilla 2.1版(或vanilla4china)安装后没有样式,css都是404 not found

我测试后发现的确如此,检查后发现是vanilla 2.1版新加入的asset系统与nginx 静态文件配置的冲突造成的。

vanilla2.1版在DebugAssets关闭的情况下,会把页面所需的所有css文件压缩成一个文件,并由 /utility/css/style/style-233c5b07.css 这样的路径引用
<link rel="stylesheet" type="text/css" href="/utility/css/style/style-233c5b07.css" media="all" />

/utility/css/style/style-233c5b07.css 这个路径形如静态文件,并不是在/utility/css/style/目录下,但是实际上是由 UtilityController的Css方法 渲染的,也就是说,它是由php来处理的。但是如果你的nginx配置里有

location ~ .*\.(js)?$ {
    expires      30d;
    access_log   off;
}



这样的配置,/utility/css/style/style-233c5b07.css 这样的请求就不会被php接到,而是当做真的静态文件处理,于是就无法找到了。

解决方案:(三种选择其一

  1. 在conf/config.php 中设置 $Configuration['DebugAssets'] = TRUE; 禁用掉vanilla的asset系统

  2. 在nginx配置中去掉 location ~ .*.(js)?$ { expires 30d; access_log off; } 这样的配置

  3. 针对 /utility/css/*.css 这样的访问路径禁用静态文件缓存。
     

标签:

评论已关闭!

Copyright © 香港虚拟主机_美国虚拟主机_香港服务器_美国服务器租用托管 保留所有权利.   Theme  Ality 蜀ICP备14006632号-1

用户登录