Это SPUTILY.MakeBrowserCachesAfelayoutsURL метод вообще полезен?

sharepoint.stackexchange https://sharepoint.stackexchange.com//questions/85984

  •  10-12-2019
  •  | 
  •  

Вопрос

Я заметил решение, которое может помочь вам управлять кэшированием файлы JavaScript .

Есть способность метода. <Сильные> makebrowsercachesafelayoutsurl . msdn говорит: < EM> возвращает новый URL, который не будет кэширован браузером, когда связанный файл изменения .

это звучит потрясающе. Я пытался использовать этот метод так:

 <script type="text/jscript" src="<%=SPUtility.MakeBrowserCacheSafeLayoutsUrl("projectName/scripts/plugins/tapes_report_definition.js", false)%>" ></script>
.

Так, это работало. Он сгенерировал? Rev= {md5hash_of_my_file.js} Часть в конце URL. Но после того, как я изменил этот файл .js, новый хеш MD5 не сгенерировал. ? Часть отчинки осталась прежней. Я пробовал Iisreset, повторное развертывание и т. Д., Но ничего не помогло. Я проверил этот метод с отражателем и узнал, что MakeBrowsercachesAfelayoutsURL не генерирует хэш MD5 все время, но получает его от внутреннего объекта SPVOLITILECACHE.

Я думал, что могу очистить этот кеш, удалив все файлы внутри этих двух папок:

  1. % appdata% \ Microsoft \ Web Server Extensions \ Cache
  2. % userprofile% \ appdata \ local \ microsoft \ websitecache Удаление

    не помогло .sputtility.makebrowsercachesafelayoutsurl все еще возвращает одинаковое значение после изменения файла JavaScript.

    У меня есть три вопроса:

    1. Как я могу обновить spvolitilecache ведь?
    2. Как вы заставляете sputility.makebrowsercachesafelayoutsurl генерируют New? Rev= без очистки кеша?
    3. Учитывая все вышеперечисленное, даже имеет смысл использовать Sputility.makebrowsercachesafelayoutsurl?

      Любая дополнительная информация будет очень оценена!

Это было полезно?

Решение

Я проверял это снова, и я подтверждаю, что этот метод совершенно жизнеспособный.URL-адрес файла обновляется после iisreset.Это именно то, что я хотел увидеть.

Другие советы

Я хотел бы добавить это как комментарий, но Stackexchange не позволит этому. Итак, вот мой ответ: для тех, кто хочет решить проблему кэшированных элементов скрипта внутри веб-части редактора контента (или jslink в файл .js), знайте, что метод SPUTIVY.MakeBrowserCachesafeurl является методом только для сервера и должен быть методом только Встроенный на страницу ASPX. Убедитесь, что вы понимаете, что вы не можете просто Plop код в файл .js или веб-часть редактора контента и имеете его функцию. Это не будет.

Это говорит, метод действительно не стоит, потому что вы также можете просто использовать тег ScriptLink. ScriptLink добавит? Rev для вас. Единственный раз, когда вы можете испытать соблазн использовать этот метод, заключается в том, что если вы встраиваете теги скрипта на страницу, которую вы никогда не должны делать. Это полностью идет против всей складской карки и лучших практик и, скорее всего, не будет работать с MDS.

Причина, по которой я нашел эту страницу, было потому, что у меня на странице есть веб-часть INFOPATH FORM на странице, и предыдущий разработчик использовал отдельный файл .js, чтобы сделать некоторые кнопки для него. Файл .js для кнопок ссылается в веб-части редактора контента. Это, вероятно, является общим сценарием, но это проблематично, потому что файл файлов не имеет трейлинга? Rev, если не добавлено вручную. Если нет настоящего метода клиента, который помогает генерировать какой-то? Rev, и я не вижу, как могло быть, мой голос в том, что этот метод бесполезнен.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с sharepoint.stackexchange
scroll top