2

zf2 でビルドされたアプリケーションがあり、すべての js、css、画像は public ディレクトリにあります。すべての phtml ファイルで必要な js ファイルと css ファイルは、Application モジュールの layout.phtml で宣言されています。

echo $this->headLink (  )
              ->prependStylesheet ( $this->basePath () . '/css/owl.carousel.css' )
              ->prependStylesheet ( $this->basePath () . '/css/owl.theme.css' );

<script type="text/javascript" src="/js/layout.js"></script>         
<script type="text/javascript" src="/assets/bootstrap-fileupload/bootstrap-fileupload.js"></script>
<script src="/js/custom.js"></script>

特定のphtmlファイルに必要なファイルは、そのファイルに直接含めます。キャッシュを使用して画像をキャッシュしています。しかし、ここでの問題は、js または css ファイルに変更を加えるたびに ctrl+f5 を使用して変更を確認しなければ反映されないことです。以下は、私の .htaccess ファイルの構成です。

# Enable expirations
ExpiresActive On

# My favicon
ExpiresByType image/x-icon "access plus 1 year�

# Images
ExpiresByType image/gif "access plus 1 month"
ExpiresByType image/png "access plus 1 month"
ExpiresByType image/jpg "access plus 1 month"
ExpiresByType image/jpeg "access plus 1 month"

ご覧のとおり、画像のみをキャッシュするように htaccess を構成しましたが、ブラウザは js ファイルと css ファイルを自動的にキャッシュしています。ctrl f5 を実行できますが、ユーザーに ctrl f5 を指示するにはどうすればよいですか。いくつかの検索で、私は資産管理に出くわしました。この 1 つのAssetic Moduleに従うことを考えています。それを使用してjsまたはcssファイルを別のphtmlファイルに含める方法について疑問がありますか? 既存の ZF2 アプリケーションで使用するには、どの程度の変更が必要ですか? または、より良いオプションを持っている人ですか?これを以前に実装したことがある人は、いくつかのコード スニペットを共有してください。

4

1 に答える 1

1

これは、.htaccess やアセットの実装とは関係ありません。

ブラウザーは、可能であれば css および js ファイルをキャッシュするだけです。ここで見つけることができる「更新」を強制する、または単に新しいファイルを提供する方法はたくさんあります。How to force browser to reload cached CSS/JS files?

ただし、ブラウザーは何らかの理由でこれを実際にキャッシュするため、本当に必要でない限り、これをいじることはお勧めしません。

于 2016-06-14T11:24:30.827 に答える