【发布时间】:2012-12-25 04:33:25
【问题描述】:
全部,
我有一个具有以下结构的 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下吗?我看不出它如何工作。此外,尝试使用 HTTP 监视器(如 Firebug 的“Net”选项卡或 Fiddler)来查看图像/CSS 请求的响应中发生了什么。 -
是的..设计文件夹在公共文件夹下..我会更正它..谢谢
-
这仍然不能解决问题
-
这就是为什么它不是一个答案;)
标签: php html css .htaccess zend-framework