我有以下結構的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