2010-11-13 61 views
0

所有,CSS和圖像不會頁面加載載荷,但頁面上的負載刷新

我有以下結構的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是不是在頁面加載正確呈現,但刷新頁面後呈現?

+1

你確定'design'文件夾不在'public'下嗎?我不明白它是如何工作的。另外,嘗試使用像Firebug的「Net」標籤或Fiddler這樣的HTTP監視器來查看來自圖像/ CSS請求的響應中發生了什麼。 – Phil 2010-11-13 12:19:47

+0

是的..設計文件夾是在公共文件夾..我會糾正它..謝謝 – Jake 2010-11-13 15:43:54

+0

這仍然不能解決問題,雖然 – Jake 2010-11-13 16:40:32

回答

1

讓做一些測試,以確定問題

1 - 嘗試訪問http://test.com/hello/design/images/bg.gif,它應該是可訪問的,如果沒有那麼它的權限問題

2-然後嘗試在你的CSS文件中使用絕對URL像background-image: url(http://test.com/hello/design/images/bg.gif);

3-如果你仍然面臨那麼,問題的設計問題,我想你使用的是IE 6 check out here

0

嘗試在你的.htacce取消註釋放氣選項ss,也許你的服務器沒有激活mod_deflate。

#SetOutputFilter DEFLATE