是脚本/家庭捆绑的保留名称?

时间:2014-02-28 00:09:18

标签: asp.net asp.net-mvc bundling-and-minification

如果我这样做

// BundleConfig.cs

bundles.Add(new ScriptBundle("~/Scripts/Home").Include("~/Scripts/Home/Home.js"));

// index.cstml

@section scripts
{
    @Scripts.Render("~/Scripts/Home")
}

然后脚本不会在发布模式下呈现,它在没有

的调试模式下工作正常
BundleTable.EnableOptimizations = true;

但如果我这样做

// BundleConfig.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的内容

2 个答案:

答案 0 :(得分:2)

特别是Scripts/Home,但它必须是有效的捆绑名称或实际文件的路径。

例如,如果要将以下内容添加到View 而不添加相应的包名称,则实际上会将脚本直接从磁盘呈现到浏览器。 (耶)

@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

答案 1 :(得分:1)

不,但是捆绑名称(〜/ Scripts / Home)无法与现有文件夹或文件匹配。 出于这个原因,我将我的脚本留在〜/ Scripts / ...但是命名捆绑〜/ js /....