我有以下结构的PHP MVC应用程序:
helloworld
- application
- configs
- controllers
- models
- layouts
- include
- library
- public
- .htaccess
- index.php
- design
- css
- style.css
- struct.css
- js
- images
- bg.gif
我已经配置在虚拟主机apache调用hello
即指向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是不是在页面加载正确呈现,但刷新页面后呈现?
你确定'design'文件夹不在'public'下吗?我不明白它是如何工作的。另外,尝试使用像Firebug的“Net”标签或Fiddler这样的HTTP监视器来查看来自图像/ CSS请求的响应中发生了什么。 – Phil 2010-11-13 12:19:47
是的..设计文件夹是在公共文件夹..我会纠正它..谢谢 – Jake 2010-11-13 15:43:54
这仍然不能解决问题,虽然 – Jake 2010-11-13 16:40:32