如何使用版本控制和BundleConfig.cs在一起

时间:2017-03-27 15:51:10

标签: javascript css versioning bundling-and-minification

我遇到的问题是,如果我对CSS或javascript文件进行更改,然后将其推送到生产环境,则客户端浏览器不会选择更改,除非他们执行ctrl + F5刷新。我在一个拥有数千名用户的学校系统中工作,因此他们知道这样做是不切实际的 - 或者当他们做出改变时。

我一直在阅读并且达成的共识似乎是广告a" java.js?v = 1.0"到文件的末尾。我的网站使用捆绑,我不认为我做对了。当我尝试将此文件放在.cs配置文件中的文件末尾时,当我将其推出时,我的网站根本无法识别引用文件。

例如,他是我捆绑的文件列表:

            bundles.Add(new ScriptBundle("~/bundles/utilitiesJs").Include(
            "~/Scripts/jquery-{version}.js",
            "~/Scripts/jquery.dynatable.js",
            "~/Scripts/js-cookie.js",
            "~/Scripts/bootstrap.js",
            "~/Scripts/bootstrap-multiselect.js",
            "~/Scripts/bootstrap-toolkit.min.js",
            "~/Scripts/common.js?v=1.0",
            "~/Scripts/dropdown.js?v=1.0",
            "~/Scripts/waitingFor.js",
            "~/Scripts/analytics.js"));

如你所见,我添加了" V = 1.0"到common.js和dropdown.js的末尾。当我访问网站并查看页面源时,这些文件只是从包含中丢失了:

<script src="/DMC/Scripts/jquery-3.1.1.js"></script>
<script src="/DMC/Scripts/jquery.dynatable.js"></script>
<script src="/DMC/Scripts/js-cookie.js"></script>
<script src="/DMC/Scripts/bootstrap.js"></script>
<script src="/DMC/Scripts/bootstrap-multiselect.js"></script>
<script src="/DMC/Scripts/bootstrap-toolkit.min.js"></script>
<script src="/DMC/Scripts/waitingFor.js"></script>
<script src="/DMC/Scripts/analytics.js"></script>

有人可以告诉我我做错了什么吗?我是否还需要重命名常用文件和下拉文件?我目前将它们命名为common.js和dropdown.js。

非常感谢您提供的任何帮助!!

1 个答案:

答案 0 :(得分:0)

如果效率可能不高但您是否尝试在页面级禁用缓存或可能设置较小的缓存窗口?

此外,如果浏览器和服务器支持它,您的受控环境使HTTP / 2成为可能。像捆绑这样的东西变成了无问题。