我见过的很多代码都引用了这个:
@section Scripts {
@Scripts.Render("~/bundles/jqueryval")
}
这很棒,而且它有效……如果包含“某物”。我是否必须添加参考才能获得这些?使用 NuGet?复制一个DLL?这是从哪里来的?
当我运行我的项目时,我得到了该资源的 404。
我见过的很多代码都引用了这个:
@section Scripts {
@Scripts.Render("~/bundles/jqueryval")
}
这很棒,而且它有效……如果包含“某物”。我是否必须添加参考才能获得这些?使用 NuGet?复制一个DLL?这是从哪里来的?
当我运行我的项目时,我得到了该资源的 404。
您需要创建捆绑包。这通常在App_Start\BundleConfig.cs
ASP.NET MVC 4 项目的文件中完成。这一切都在Bundling and Minification中进行了解释。
在BundleConfig
课堂上你需要这样的东西(这个方法应该在 中执行Application_Start
):
public static void RegisterBundles(BundleCollection bundles) {
bundles.Add(new ScriptBundle("~/bundles/jquery").Include(
"~/Scripts/jquery-{version}.js"));
bundles.Add(new ScriptBundle("~/bundles/jqueryval").Include(
"~/Scripts/jquery.unobtrusive*",
"~/Scripts/jquery.validate*"));
// ... more registrations ...
}
javascript 源文件应该存在于该Scripts
文件夹中。上面链接的教程解释了如何在发布版本等中捆绑缩小版本。
仅供参考 - 我已经看到了许多在 MVC 中使用 Bundles 的示例,但大多数人都忽略了提到它的程序集在 System.Web.Optimization.dll 中,您可以通过添加Microsoft ASP.NET Web 优化框架包从 NuGet 获得它.
是的,您必须在您的应用程序中注册捆绑包。
全球.asax.cs:
protected void Application_Start() {
AreaRegistration.RegisterAllAreas();
// Register the bundles
BundleConfig.RegisterBundles(BundleTable.Bundles);
}
捆绑配置.cs:
public class BundleConfig
{
// For more information on Bundling, visit http://go.microsoft.com/fwlink/?LinkId=254725
public static void RegisterBundles(BundleCollection bundles)
{
bundles.Add(new ScriptBundle("~bundles/jqueryval").Include(
"~/Scripts/jquery.unobtrusive*",
"~/Scripts/jquery.validate*",
"~/Scripts/jquery.livequery.js",
"~/Scripts/jquery.numeric.js"
));
}
因此,当您将此代码放在视图中时:
@section Scripts {
@Scripts.Render("~/bundles/jqueryval")
}
它将呈现 4 个 javascript 文件。
更多:捆绑和缩小
bundles.Add(new ScriptBundle("~bundles/jqueryval").Include("~/Scripts/jquery.min.js"));
请不要在 Include 方法中,它包含在您项目中的文件中。
在您的项目App_Start/BundleConfig.cs
中是所有捆绑包的声明。考虑一下:
bundles.Add(new ScriptBundle("~/bundles/jqueryval").Include(
"~/Scripts/jquery.unobtrusive*",
"~/Scripts/jquery.validate*"));
在这种情况下,如果您引用“~/bundles/jqueryval”,它将为您包含列出的 2 个脚本,并且作为奖励,它将缩小它们(如果您在“发布”模式下运行您的项目)。
看看这个了解更多细节。