akn*_*ds1 19 asp.net-mvc-4 bundling-and-minification asp.net-optimization
我刚刚将ASP.NET MVC 3项目迁移到MVC 4/.NET 4.0,并安装了NuGet包Microsoft.AspNet.Web.Optimization以支持CSS和JavaScript的捆绑和缩小.我几乎有捆绑/缩小工作,问题是它始终启用.即使应用程序处于调试模式(如在Web.config中配置),所有JavaScript包含都会缩小.从下面的XML代码段中可以看到,在Web.config中启用了调试模式:
<system.web>
<compilation debug="true" targetFramework="4.0">
...
</compilation>
...
</system.web>
Run Code Online (Sandbox Code Playgroud)
我的捆绑配置的摘录:
public class BundleConfig
{
public static void RegisterBundles(BundleCollection bundles)
{
...
bundles.Add(new ScriptBundle("~/bundles/jquery").Include(
"~/Scripts/jquery-1.*",
"~/Scripts/jquery.form.js",
"~/Scripts/jquery.format.js"));
bundles.Add(new StyleBundle("~/Content/css").Include(
"~/Content/Site.css"));
...
}
}
Run Code Online (Sandbox Code Playgroud)
CSS/JavaScript包含在HTML中呈现,例如:
<link href="/content/css" rel="stylesheet" type="text/css">
<script src="/bundles/jquery" type="text/javascript"></script>
Run Code Online (Sandbox Code Playgroud)
有没有人知道为什么在我的情况下启用缩小?我不知道我在这里失踪了什么.要解决我创建了一个测试ASP.NET MVC 4的互联网应用,并可以验证CSS/JavaScript的并没有在调试模式下获得精缩为这个项目.
编辑:
在我的_Layout.cshtml文件中,我像这样渲染样式/脚本:
@Styles.Render("content/css")
@Scripts.Render("bundles/jquery")
Run Code Online (Sandbox Code Playgroud)
感谢Hao,我意识到我忘了用"〜/"作为包名称的前缀.
Hao*_*ung 17
红旗标记是HTML中呈现的链接/脚本标记:
如果您使用Script/Style.Render,它们应包含版本哈希码,即
< script src="/bundles/jquery?v=wvLq7H7qEZB2giyIRn7aEZAxhHOb2RfTYYh2HMd9EqM1"/>
Run Code Online (Sandbox Code Playgroud)
要获得MVC4模板正在使用的调试/发布行为,您还必须使用Script/Style.Render方法.调用这些方法时,必须在示例中传递虚拟包路径:
@Styles.Render("~/content/css")
@Scripts.Render("~/bundles/jquery")
Run Code Online (Sandbox Code Playgroud)
在调试模式下,您不应该获得指向包的链接/脚本标记(将始终缩小/捆绑).相反,您应该在调试模式下获取脚本/链接标记到各个资源.
| 归档时间: |
|
| 查看次数: |
10989 次 |
| 最近记录: |