今天在使用MVC4打包壓縮功能@Scripts.Render("~/bundles/jquery") 的時(shí)候產(chǎn)生了一些疑惑,問什么在App_Start文件夾下BundleConfig.cs文件內(nèi)
1
2
3
4
|
bundles.Add( new ScriptBundle( "~/bundles/jquery" ).Include( "~/Scripts/jquery-{version}.js" , "~/Scripts/jquery.unobtrusive-ajax.js" )); |
這樣寫可以,但是
1
2
3
4
|
bundles.Add( new ScriptBundle( "~/bundles/jquery" ).Include( "~/Scripts/jquery-{version}.js" , "~/Scripts/jquery.unobtrusive-ajax.min.js" )); |
這樣寫卻不可以,我的目錄里明明有
1
|
"~/Scripts/jquery.unobtrusive-ajax.min.js" |
這個(gè)文件啊
通過調(diào)試跟蹤發(fā)現(xiàn),MVC內(nèi)部已經(jīng)對(duì)“.min.js”文件做了過濾
通過反編譯這個(gè)DLL文件
可以看到下面反編譯后的代碼:
1
2
3
4
5
6
7
8
9
10
11
12
|
public static void AddDefaultIgnorePatterns(IgnoreList ignoreList) { if (ignoreList == null ) { throw new ArgumentNullException( "ignoreList" ); } ignoreList.Ignore( "*.intellisense.js" ); ignoreList.Ignore( "*-vsdoc.js" ); ignoreList.Ignore( "*.debug.js" , OptimizationMode.WhenEnabled); ignoreList.Ignore( "*.min.js" , OptimizationMode.WhenDisabled); ignoreList.Ignore( "*.min.css" , OptimizationMode.WhenDisabled); } |
由此我們可以知道MVC默認(rèn)幫我們過濾了后綴名為 .intellisense.js、-vsdoc.js、.debug.js、.min.js、.min.css的文件,這也就是我們引用.min.js文件不起作用的原因了。
以上所述就是本文的全部?jī)?nèi)容了,希望大家能夠喜歡。