【问题标题】:Getting Styles.Render() to preserve indentation from Razor template?让 Styles.Render() 保留 Razor 模板的缩进?
【发布时间】:2013-01-29 15:37:01
【问题描述】:

我对所有标记的可读性(以及缩进)有点着迷。

当我在 ASP.NET MVC4 项目中调用 @Styles.Render("~/content/css") 时,只有第一行维护来自我的 Razor 模板的缩进

这是输出:

    <link href="/Content/css/ie.css" rel="stylesheet"/>
<link href="/Content/css/1140.css" rel="stylesheet"/>
<link href="/Content/css/screen.css" rel="stylesheet"/>
<link href="/Content/css/compatibility.css" rel="stylesheet"/>

我希望所有生成的标记都具有与@Styles.Render() 调用相同的缩进。

这很容易做到吗?如果有,怎么做?

【问题讨论】:

  • 如果重要的话,当你部署这个项目时,唯一会渲染的是&lt;link href="/Content/css?v=somenumber" rel="stylesheet"/&gt;

标签: asp.net razor asp.net-mvc-4 indentation bundling-and-minification


【解决方案1】:

理想情况下,渲染的 HTML 会被缩小。格式化标记在开发过程中非常有用,但如果这是您为用户提供的内容,则会产生更大的文件。

您看到四个样式表的唯一原因是您在调试环境中运行,该环境已禁用您的捆绑。正如我在帖子“Scripts.Render using outdated javascript file”中解释的那样,如果您在BundleConfig 中将BundleTable.EnableOptimizations = true; 添加到RegisterBundles 的底部,它将强制捆绑工作(就像在发布模式下一样),您将看到这个:

    <link href="/Content/css/ie.css" rel="stylesheet"/>
<link href="/Content/css/1140.css" rel="stylesheet"/>
<link href="/Content/css/screen.css" rel="stylesheet"/>
<link href="/Content/css/compatibility.css" rel="stylesheet"/>

现在呈现如下:

    <link href="/Content/css?v=Sn3f8Vf56Sr9k0EreIZnouVoGt2cfrd41" rel="stylesheet"/>

所以是的,在开发过程中,它不会保持你的缩进,但是一旦你发布它就会是你想要的。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-07-31
    • 1970-01-01
    • 1970-01-01
    • 2010-10-31
    • 1970-01-01
    • 2018-08-05
    相关资源
    最近更新 更多