我剛剛完成了一個drupal項目,並且正在經歷網站的優化階段。我已經在性能下檢查了緩存塊和CSS和JS聚合以獲得更好的加載時間。但我注意到,當我運行一個頁面速度測試或Yslow的一切通過,但利用瀏覽器緩存。看起來到期日沒有設置在所有的圖像和CSS文件。我的問題是,我必須編輯.htaccess文件還是需要將未緩存的圖像和css文件放入特定文件夾?Drupal 7.0緩存問題!
任何幫助表示讚賞,提前
我剛剛完成了一個drupal項目,並且正在經歷網站的優化階段。我已經在性能下檢查了緩存塊和CSS和JS聚合以獲得更好的加載時間。但我注意到,當我運行一個頁面速度測試或Yslow的一切通過,但利用瀏覽器緩存。看起來到期日沒有設置在所有的圖像和CSS文件。我的問題是,我必須編輯.htaccess文件還是需要將未緩存的圖像和css文件放入特定文件夾?Drupal 7.0緩存問題!
任何幫助表示讚賞,提前
非常感謝您可以將Apache配置來設置特定的到期/緩存控制標題,方便圖像/ CSS/JS使用mod_expires和mod_headers文件。
下面是幾個例子(一般的例子 - 分析和應用到你的系統之前,參閱手冊):
<FilesMatch "\.(html|htm|js|css)$">
FileETag None
<IfModule mod_headers.c>
Header unset ETag
Header set Cache-Control "max-age=0, no-cache, no-store, must-revalidate"
Header set Pragma "no-cache"
Header set Expires "Wed, 11 Jan 1984 05:00:00 GMT"
</IfModule>
</FilesMatch>
緩存與兩個指定mod_expires mod_headers中+
# Turn on Expires and set default to 0
ExpiresActive On
ExpiresDefault A0
# Set up caching on media files for 1 year (forever?)
<FilesMatch "\.(flv|ico|pdf|avi|mov|ppt|doc|mp3|wmv|wav)$">
ExpiresDefault A29030400
Header append Cache-Control "public"
</FilesMatch>
# Set up caching on media files for 1 week
<FilesMatch "\.(gif|jpg|jpeg|png|swf)$">
ExpiresDefault A604800
Header append Cache-Control "public"
</FilesMatch>
# Set up 2 Hour caching on commonly updated files
<FilesMatch "\.(xml|txt|html|js|css)$">
ExpiresDefault A7200
Header append Cache-Control "proxy-revalidate"
</FilesMatch>
# Force no caching for dynamic files
<FilesMatch "\.(php|cgi|pl|htm)$">
ExpiresActive Off
Header set Cache-Control "private, no-cache, no-store, proxy-revalidate, no-transform"
Header set Pragma "no-cache"
</FilesMatch>
我有同樣的問題很長一段時間,我只是找到了訣竅!
尋找在位於Drupal的根庫的.htaccess之後,有這樣的情況: <IfModule mod_expires.c> ... </IfModule>
因爲Apache的expires_module只是不是我的服務器上啓用,檢查是否expires_module存在於不執行位於內部的代碼列表中返回:
sudo a2enmod expires
sudo a2enmod headers
sudo service apache2 restart
感謝人:
如果沒有,只是通過激活它ot爲您的答覆,我已經嘗試了上面提到的所有設置,但我仍然在頁面速度上獲得相同的分數!我不知道我做錯了什麼?這裏是鏈接到我的網站,如果你想看看你自己。 http://backbone-design.com/順便說一下,我使用的網頁速度可以在這裏找到:http://pagespeed.googlelabs.com/很多在此先感謝 – Nino2armando
@Nino使用FireBug的「網」面板或類似的工具(如果您使用其他瀏覽器)並檢查實際的響應標題。如果他們不像你設置的那樣,那麼你必須挖掘你的web服務器配置(或者你的代碼,如果image/css/js是動態生成/服務的),看看有什麼可能會覆蓋這些設置。 – LazyOne
@Nino你的頭文件中肯定沒有用於圖像和css文件的'Expire'&'Cache-Control'頭文件。你必須檢查你的方面爲什麼上面提到的配置文件指令不起作用。 2可能的事情:1).htaccess文件沒有被解析或者該部分從未被執行2)其他東西覆蓋了那些標籤。 – LazyOne