2015-01-30 2 views
0

Есть ли возможность изменить способ использования System.Web.Optimization для пакетов?Изменить asp.net mvc bundles fingerprinting

От:

<script src="/bundles/js/bundlename?v=GMFuN8gzKMcwk5BwaMfgjUlieAXKThyQd8twrVplJ8A1"></script> 

Чтобы что-то обычай, как это:

<script src="/bundles/js/v-GMFuN8gzKMcwk5BwaMfgjUlieAXKThyQd8twrVplJ8A1/bundlename"></script> 

UPDATE: Не идеал, но маленький неприятный обходной путь:

public static class BundlesHelper 
{ 
     public static IHtmlString RenderScripts(params string[] paths) 
     { 
      #if DEBUG 
      return System.Web.Optimization.Scripts.Render(paths); 
      #endif 

      // Get raw string 
      var rawString = System.Web.Optimization.Scripts.Render(paths).ToHtmlString(); 

      // Get version value 
      var version = Regex.Match(rawString, @"\?v=([0-9a-zA-Z_-])+").Value; 

      // Remove old hash 
      rawString = rawString.Replace(version, ""); 

      // Remove script end tag 
      rawString = rawString.Replace("</script>", ""); 

      // Get last index of "/" 
      var index = rawString.LastIndexOf('/'); 

      // Return new string 
      return new HtmlString(rawString.Insert(index, "/v-" + version.Replace("?v=", "")) + "</script>"); 
     } 
} 

ответ

1

Нет, это не смысл. Часть строки запроса представляет собой загрузчик кеша. Файл находится там, где скрипт src говорит, что он есть, и это не изменяется. В желаемой версии фактическое физическое местоположение файла должно измениться.

+0

Да, вы правы. Но я хочу изменить местоположение с помощью Rewrite Rule, поэтому я все еще ищу способ изменить то, как будет выглядеть отпечаток пальца. –

+0

Это невозможно без какого-либо * очень хриплого и уродливого решения, и нет никакой функциональной выгоды для этого. Почему это даже имеет значение? –

+0

Поскольку некоторые инструменты тестирования SEO не любят эти строки запросов, и мы используем решение для статических файлов, отпечатанных на основе этого решения http://madskristensen.net/post/cache-busting-in-aspnet, поэтому оно быть приятным иметь однородное решение по всему проекту. –

Смежные вопросы