如果我这样做
//捆绑配置.cs
bundles.Add(new ScriptBundle("~/Scripts/Home").Include("~/Scripts/Home/Home.js"));
//index.cstml
@section scripts
{
@Scripts.Render("~/Scripts/Home")
}
然后脚本不会在发布模式下渲染,它在调试模式下工作正常,没有
BundleTable.EnableOptimizations = true;
但如果我这样做
//捆绑配置.cs
bundles.Add(new ScriptBundle("~/bundles/Home").Include("~/Scripts/Home/Home.js"));
//index.cstml
@section scripts
{
@Scripts.Render("~/bundles/Home")
}
然后它在调试和发布模式下都可以正常工作。
Scripts/Home
是保留名称还是什么?
注意:我没有其他名为~/Scripts/Home
的东西BundleConfig.cs
特别Scripts/Home
,但它必须是有效的捆绑包名称或实际文件的路径。
例如,如果您要将以下内容添加到视图中而不添加适当的捆绑包名称,则实际上会将脚本直接从磁盘呈现到浏览器。(耶)
@Scripts.Render("~/scripts/jquery-1.8.2.js")
但是,任何对不存在的文件或捆绑包名称的引用都会导致错误,如下所示:
@Scripts.Render("~/scripts/jquery/*.*") -- error, no wildcards either
@Scripts.Render("~/non-existant-directory-or-bundle-name") -- error
@Scripts.Render("~/scripts/no-such-file.js") -- error
否,但是捆绑包名称(~/Scripts/Home)不能与现有文件夹或文件匹配。出于这个原因,我将脚本留在~/脚本/...但是将捆绑包命名为 ~/js/....