web-dev-qa-db-ja.com

nginxで.htaccessを使用してブラウザーのキャッシュを活用する方法は?

私たちのウェブサイトのページ速度を上げようとしています bercore.coChrome用PageSpeed Insights 拡張機能を使用して、ページ速度を分析しています。 「ブラウザのキャッシュを活用する」ことを示唆しています。これは私が立ち往生しているところです。

次のように、.htaccessファイルにいくつかの変更を試みました。

## EXPIRES CACHING ##
<IfModule mod_expires.c>
ExpiresActive On
ExpiresByType image/jpg "access 1 year"
ExpiresByType image/jpeg "access 1 year"
ExpiresByType image/gif "access 1 year"
ExpiresByType image/png "access 1 year"
ExpiresByType text/css "access 1 month"
ExpiresByType application/pdf "access 1 month"
ExpiresByType text/x-javascript "access 1 month"
ExpiresByType application/x-shockwave-flash "access 1 month"
ExpiresByType image/x-icon "access 1 year"
ExpiresDefault "access 2 days"
</IfModule>
## EXPIRES CACHING ##

そして何も得ません。

後にいくつかの調査を行い、.htaccessはApacheサーバー専用であることがわかりました。私が間違っている場合は修正してください。

しかし、Webページのヘッダー応答を見ると、サーバーがnginxであることがわかりました。次に、ホストのWebルートに.htaccessファイルがあるのはなぜですか?よくわかりません。

要するに: this サイトの静的コンテンツをキャッシュする方法は?

便利なリンク: Nginx wiki

更新1:

ここに私が持っているもののスクリーンショットがあります、サーバーはnginxです: Respnonse headers

私の質問は簡単です、環境に応じてすべての静的コンテンツをキャッシュする必要があります。

更新2:dan で示唆されているように、サーバーは実際にはnginxではなくApacheであることがわかりました。私はそれを本当に理解していませんが、それが話題外であることをさせてください。

今私の問題:

サーバーソフトウェア:Apache/2.4.7(Unix)

必要:。htaccessコードでブラウザのキャッシュ有効期限を設定します。

1
Vikas Swami

次の例のように、nginxサーバーのvhost設定でキャッシュの有効期限を指定できます。

location ~* \.(js|css|png|jpg|jpeg|gif|ico)(\?ver=[0-9.]+)?$ {
    expires 1y;

}

ただし、サーバーブロックではlocationのみを使用できます(httpブロックでは使用できません)が、これを別のファイルに挿入して、各serverブロックに含めることができますただし、これが必要です。

ブラウザキャッシングの活用に関する記事を読む Google.

2
zigojacko