スパイティリティーgakebrowserCachesafelayoutsurlメソッドはまったく便利ですか?
-
10-12-2019 - |
質問
msdn このメソッド:< em>関連ファイルが変更されたときにブラウザによってキャッシュされない新しいURLを返します。。
それは素晴らしい音です。私はこの方法を使ってこの方法を使ってみました:
<script type="text/jscript" src="<%=SPUtility.MakeBrowserCacheSafeLayoutsUrl("projectName/scripts/plugins/tapes_report_definition.js", false)%>" ></script>
.
だからそれはうまくいきました。 URLの最後にあるREV= {MD5HASH_OF_MY_FILE.JS}部分を生成しました。しかし、この.jsファイルを変更した後、新しいMD5ハッシュは生成されませんでした。 ?Rev Partは同じままでした。私はIisreset、Redeployなどを試しましたが、何も役に立ちません。このメソッドをリフレクタで確認し、MakeBrowserCacheSafelayoutSURLが常にMD5ハッシュを生成しないことを学習しましたが、内部SPVolitileCacheオブジェクトから取得します。
私は、これら2つのフォルダの内側のすべてのファイルを削除してこのキャッシュをクリアできたと思いました:
- %AppData%\ Microsoft \ Web Server Extensions \ cache
- %userprofile%\ appdata \ local \ microsoft \ websiteCache
削除はhelp.makebrowserCachesafelayoutSurlがまだJavaScriptファイルが変更された後に同じ値を返します。
私は3つの質問を持っています:
- allの後にSpvolitileCacheを更新する方法?
- どのようにSputility.MakeBrowserCachesafelayoutSurlを生成しますか 新しい?キャッシュを削除せずにrev=?
- 上記のように考えても、スパイトリティを使用することは理にかかりますか。
追加情報は大きく感謝されます!
解決
もう一度確認しました、そして、この方法が完全に実行可能であることを確認します。ファイルのURLはIISRESETの後に更新されます。これはまさに私が見たかったものです。
他のヒント
コメントとしてこれを追加したいのですが、StackexChangeはそれを許可しません。だからここに私の答えがあります。 ASPXページに埋め込まれました。コードを.jsファイルまたはコンテンツエディタのWebパーツにするだけでは、それを機能させるだけではないことを確認してください。そうではありません。
言っていると言われている、この方法は、スクリプトリンクタグを使用するだけでよいので、本当に無意味です。 ScriptLinkはあなたのためにRevを追加します。このメソッドを使用することをテンプル化する唯一の時間は、スクリプトタグを埋め込むことができないページに埋め込まれている場合です。それは完全に社の枠組みとベストプラクティスに反対し、おそらくMDSでは機能しないでしょう。
このページが見つかった理由は、私がページ上にInfoPathフォームWebパーツを持っていて、以前の開発者が別の.jsファイルを使用してボタンをいくつか使用しました。ボタンの.jsファイルは、コンテンツエディタのWebパーツで参照されています。これはおそらく一般的なシナリオですが、ファイル参照に末尾がないため、手動で追加されない限り、問題があります。いくつかの種類のrevを生成するのに役立つ実際のクライアントサイドメソッドがない限り、私の投票はこの方法は無用であるということです。