Могу ли я использовать версию QueryString в Script Bundle? - PullRequest
0 голосов
/ 30 ноября 2018

Я пытаюсь использовать строку запроса в моих файлах .js, чтобы они загружались каждый раз, когда я вносил изменения.Я попытался поместить строку запроса в файлы как часть ScriptBundle.Когда я нажимаю на пункт меню, который имеет функцию в .js, которая должна была быть загружена через Bundle, функция не обнаруживается.

public static void RegisterBundles([NotNull] BundleCollection bundles)
    {
        var JAVASCRIPT_CSS_VERSION = System.Web.Configuration.WebConfigurationManager.AppSettings["JAVASCRIPT_CSS_VERSION"];

        BundleTable.EnableOptimizations = true;

        bundles.Add(new ScriptBundle("~/bundles/jquery").Include(
                   "~/Scripts/jquery-2.2.4.*"));

        bundles.Add(new ScriptBundle("~/bundles/jqueryui").Include(
                    "~/Scripts/jquery.browser.js?v=" + JAVASCRIPT_CSS_VERSION,
                    "~/Scripts/jquery-ui-1.8.24.js"));

        bundles.Add(new ScriptBundle("~/bundles/jqueryval").Include(
                    "~/Scripts/jquery.validate.js?v=" + JAVASCRIPT_CSS_VERSION));

        // Use the development version of Modernizr to develop with and learn from. Then, when you're
        // ready for production, use the build tool at http://modernizr.com to pick only the tests you need.
        bundles.Add(new ScriptBundle("~/bundles/modernizr").Include(
                    "~/Scripts/modernizr-*"));

        bundles.Add(new ScriptBundle("~/bundles/CrossMedia").Include(
                     "~/Scripts/CMApp/CrossMediaAjax.js?v=" + JAVASCRIPT_CSS_VERSION,
                     "~/Scripts/CMApp/CrossMedia.js?v=" + JAVASCRIPT_CSS_VERSION,
                     "~/Scripts/CMApp/WebMobile.js?v=" + JAVASCRIPT_CSS_VERSION,
                     "~/Scripts/CMApp/SocialMedia.js?v=" + JAVASCRIPT_CSS_VERSION,
                     "~/Scripts/CMApp/ENewsletter.js?v=" + JAVASCRIPT_CSS_VERSION,
                     "~/Scripts/CMApp/AppData.js?v=" + JAVASCRIPT_CSS_VERSION,
                     "~/Scripts/CMApp/PrintSummary.js?v=" + JAVASCRIPT_CSS_VERSION,
                     "~/Scripts/CMApp/Approvals.js?v=" + JAVASCRIPT_CSS_VERSION));

        bundles.Add(new ScriptBundle("~/bundles/brandview").Include(
                "~/Scripts/Brandview/Brandview.js?v=" + JAVASCRIPT_CSS_VERSION,

                "~/Scripts/Brandview/SelectTemplate.js?v=" + JAVASCRIPT_CSS_VERSION,
                "~/Scripts/Brandview/DataEntry.js?v=" + JAVASCRIPT_CSS_VERSION,
                // "~/Scripts/Brandview/Preview.js",
                // "~/Scripts/Brandview/ChartCtrl.js",
                "~/Scripts/Brandview/Submit.js?v=" + JAVASCRIPT_CSS_VERSION
                ));}

Я знаю, что сделал это неправильно, потому чтоне работаетВ других случаях я получал QueryString с версией для работы, когда я просто использовал его, как показано ниже.

 <script src="@Url.Content("~/Scripts/ABC/gladiola.js?v=" + JAVASCRIPT_CSS_VERSION)" type="text/javascript"></script>

Любая помощь будет оценена.

Спасибо Боб

1 Ответ

0 голосов
/ 01 декабря 2018

Я продолжил исследование, нашел эту статью и манипулировал кодом для своих нужд, и это решило мою проблему.

Очистка кэша MVC с помощью строки запроса

Вот фрагментмоего кода сейчас

bundles.Add(new ScriptBundle("~/bundles/brandview").Include(
                "~/Scripts/Brandview/Brandview.js",

                "~/Scripts/Brandview/SelectTemplate.js",
                "~/Scripts/Brandview/DataEntry.js",
                // "~/Scripts/Brandview/Preview.js",
                // "~/Scripts/Brandview/ChartCtrl.js",
                "~/Scripts/Brandview/Submit.js").WithVersionNumber());
    }

    private static Bundle WithVersionNumber(this Bundle sb)
    {
        sb.Transforms.Add(new LastModifiedBundleTransform());
        return sb;
    }
    private class LastModifiedBundleTransform : IBundleTransform
    {
        public void Process(BundleContext context, BundleResponse response)
        {

            var JAVASCRIPT_CSS_VERSION = System.Web.Configuration.WebConfigurationManager.AppSettings["JAVASCRIPT_CSS_VERSION"];

            foreach (var file in response.Files)
            {
                file.IncludedVirtualPath = string.Concat(file.IncludedVirtualPath, "?v=", JAVASCRIPT_CSS_VERSION);
            }
        }
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...