是脚本/主页是捆绑包的保留名称



如果我这样做

/

/捆绑配置.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/....