加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

asp.net-mvc-4 – ASP.NET MVC 4应用程序捆绑和分类,为什么在调

发布时间:2020-12-16 00:43:46 所属栏目:asp.Net 来源:网络整理
导读:我刚刚将ASP.NET MVC 3项目迁移到MVC 4 / .NET 4.0,并安装了NuGet软件包Microsoft.AspNet.Web.Optimization,以支持CSS和JavaScript的捆绑和分类。我几乎完成了捆绑/分解工作,问题始终是启用的。即使应用程序处于调试模式,如在Web.config中配置的,所有Ja
我刚刚将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>

我的捆绑配置的摘录:

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"));

        ...
    }
}

CSS / JavaScript包含在HTML中呈现,例如:

<link href="/content/css" rel="stylesheet" type="text/css">
<script src="/bundles/jquery" type="text/javascript"></script>

有人有任何线索,为什么在我的情况下,我在这里失踪了,我感到失落。为了解决问题,我创建了一个测试ASP.NET MVC 4 Internet应用程序,并可以验证CSS / JavaScript没有在该项目的调试模式下缩小。

编辑:

在我的_Layout.cshtml文件中,我渲染这样的样式/脚本:

@Styles.Render("content/css")
@Scripts.Render("bundles/jquery")

感谢郝,我意识到我忘了使用“?/”来配置包名称。

解决方法

红色标记是HTML中呈现的链接/脚本标签:

如果您使用Script / Style.Render,那么它们应该包含一个版本的哈希码,即

< script src="/bundles/jquery?v=wvLq7H7qEZB2giyIRn7aEZAxhHOb2RfTYYh2HMd9EqM1"/>

要获取MVC4模板正在使用的调试/释放行为,您还必须使用Script / Style.Render方法。调用这些方法时,您必须传递虚拟包路径,在您的示例中:

@Styles.Render("~/content/css")
@Scripts.Render("~/bundles/jquery")

在调试模式下,您不应该获取指向包的链接/脚本标签(这将始终是细化/捆绑的)。相反,您应该在调试模式下获取每个资源的脚本/链接标签。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读