Ana*_*tic 8 javascript browser asp.net-mvc cross-browser browser-cache
非常简单,我正在开发一个MVC5应用程序并且已经注意到(最近)我的浏览器似乎正在缓存我在视图中的JavaScript代码@section Scripts { }
.
目前我使用Chrome开发,我曾尝试CTRL+F5
与CTRL+SHFT+R
该重新加载页面,但alert()
在JavaScript代码中的注释去掉,我仍然为渲染评论.我也尝试通过隐身模式以及其他浏览器(Firefox,IE)访问我的本地主机并获得相同的行为.这是我的/Home/Index.cshtml
View,它是应用程序启动时加载的默认View.我还尝试在页面中添加一些额外的HTML文本,然后新代码再次生效/显示.
我目前的Chrome版本Version 41.0.2272.118 m
是否有人有任何想法可能会发生什么?
更新:
我已经使用Chrome中的开发者工具=>常规设置并进行了检查[X] Disable cache (while DevTools is open)
,然后重复(使用DevTools仍处于打开状态)尝试CTRL+SHFT+R
并且CTRL+F5
在我的更改未生效之前使用相同的结果.
更新2:
打开DevTools后,我还按下了"刷新"按钮并尝试了"正常/硬/空缓存和硬重新加载"选项,结果相同.为了简化测试,我在下面添加了一个警报,以便在页面加载时显示(并且当前没有警报出现):
$(document).ready(function () {
alert("Test");
// Other Code/Functions -- No Error showing in Console
});
Run Code Online (Sandbox Code Playgroud)
Mah*_*Ali 30
System.Web.Optimization.BundleTable.Bundles.ResolveBundleUrl("url", true)
解决您的脚本的URL,第二个参数(true
)被要求与URL生成一个散列,从而防止缓存从浏览器中,当您更改文件.这与第一个选项中生成的哈希完全相同,但没有缩小.我创建了一个小的演示,显示第二个选项阻止缓存发生,诀窍是从脚本的内容中生成哈希,而不会缩小脚本.
我创建了一个myscript.js
使用此内容调用的脚本文件:
$(document).ready(function () {
alert('a');
});
Run Code Online (Sandbox Code Playgroud)
然后我把它添加到我的BundleConfig.cs
:
// PLEASE NOTE this is **NOT** a ScriptBundle
bundles.Add(new Bundle("~/bundles/myscripts").Include(
"~/Scripts/myscript*"));
Run Code Online (Sandbox Code Playgroud)
如果你添加一个ScriptBundle
,你将再次得到一个缩小的响应,因为ScriptBundle
它只是一个Bundle
使用JsMinify
转换(源).这就是我们使用的原因Bundle
.
现在,您可以使用此方法添加脚本,以使用散列appendend解析脚本URL.你可以使用Script.Render
@Scripts.Render(System.Web.Optimization.BundleTable.Bundles.ResolveBundleUrl("~/bundles/myscripts", true))
Run Code Online (Sandbox Code Playgroud)
或script
标签:
<script src="@System.Web.Optimization.BundleTable.Bundles.ResolveBundleUrl("~/bundles/myscripts", true)"></script>
Run Code Online (Sandbox Code Playgroud)
无论哪种方式都会生成带有哈希的URL以防止缓存:
编辑我的文件后:
您可能希望在脚本URL之后添加no_cache变量,如:
<script src="js/stg/Stg.js?nocache=@random_number"></script>
Run Code Online (Sandbox Code Playgroud)
如果您设法将随机数放在我指定的位置,浏览器将在F5之后自动下载最新版本的脚本
归档时间: |
|
查看次数: |
11324 次 |
最近记录: |