所有
我有一个PHP MVC应用程序,其结构如下:
helloworld
- application
- configs
- controllers
- models
- layouts
- include
- library
- public
- .htaccess
- index.php
- design
- css
- style.css
- struct.css
- js
- images
- bg.gif
我在名为hello
的apache中配置了一个指向helloworld/public/
文件夹的虚拟主机。因此,当我查看我的网站时,使用http://hello
所有CSS和图像渲染都很好。
我将我的网站部署到具有上述类似配置的其他服务器。当我使用http://test.com/hello
CSS及其中包含的背景图片访问网站时,Chrome和Safari中的渲染效果非常好,但IE,Firefox和Opera上的背景图片都失败了。当页面在这些浏览器上刷新时,它可以正常工作。我无法理解这种行为。
我的CSS中的URL是这样写的:
background-image: url(/design/images/bg.gif);
我的htaccess是这样的:
Options -MultiViews -Indexes
#####################################################
# CONFIGURE media caching
#
Header unset ETag
FileETag None
Header unset Last-Modified
Header set Expires "Fri, 21 Dec 2012 00:00:00 GMT"
Header set Cache-Control "max-age=7200, must-revalidate"
SetOutputFilter DEFLATE
#
#####################################################
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} -s [OR]
RewriteCond %{REQUEST_FILENAME} -l [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^.*$ - [NC,L]
RewriteRule ^.*$ index.php [NC,L]
有人可以解释为什么背景图片和CSS在页面加载时无法正确呈现,但在页面刷新后呈现?
答案 0 :(得分:1)
让我们做一些测试来确定问题
1-尝试访问http://test.com/hello/design/images/bg.gif,它应该是可访问的,如果没有,那么它的权限问题
2-然后尝试在您的css文件中使用绝对网址,例如background-image: url(http://test.com/hello/design/images/bg.gif);
3-如果你仍然面临问题那么它的设计问题,我想你正在使用IE 6 check out here
答案 1 :(得分:0)
尝试在.htaccess上取消注释deflate选项,也许您的服务器没有激活mod_deflate。
#SetOutputFilter DEFLATE