gpt4 book ai didi

c# - 当调试设置为 false 时,ASP.Net MVC4 包用于更少的文件不被渲染

转载 作者:可可西里 更新时间:2023-11-01 08:23:24 25 4
gpt4 key购买 nike

在一个简单的 ASP.Net MVC4 测试应用程序中,我安装了无点 NuGet 包和 followed this tutorial .

我的 .less 文件被正确解析为 CSS,并且在 debug=true 时可以正常工作。

<link href="/Public/less/main.less" rel="stylesheet"/>
<link href="/Public/less/home.less" rel="stylesheet"/>
<link href="/Public/less/a.less" rel="stylesheet"/>
<link href="/Public/less/b.less" rel="stylesheet"/>
<link href="/Public/less/c.less" rel="stylesheet"/>

然而,当我设置 debug=false 以使其缩小并合并到单个样式表时,我得到了这个:

<link href="/Public/less?v=" rel="stylesheet"/> // NOT WORKING!

这是我的包配置文件;同样,直接取自教程:

public class BundleConfig
{
// For more information on Bundling, visit http://go.microsoft.com/fwlink/?LinkId=254725
public static void RegisterBundles(BundleCollection bundles)
{

// Compile .less files and create a bundle for them.
var lessBundle = new Bundle("~/Public/less").Include(
"~/Public/less/main.less",
"~/Public/less/home.less",
"~/Public/less/a.less",
"~/Public/less/b.less",
"~/Public/less/c.less");
lessBundle.Transforms.Add(new LessTransform());
lessBundle.Transforms.Add(new CssMinify());
bundles.Add(lessBundle);
}
}

在我的布局文件中:

<head>
@Styles.Render("~/Public/less")
</head>

这是我的 LessTransform 类:

public class LessTransform : IBundleTransform
{
public void Process(BundleContext context, BundleResponse response)
{
response.Content = dotless.Core.Less.Parse(response.Content);
response.ContentType = "text/css";
}
}

对于为什么 bundle 在 debug=false 上无法正常工作有什么想法吗?

最佳答案

默认情况下,MVC 4.0 中的 bundle 和缩小在 Debug模式下是禁用的,因为缩小和 bundle 使调试变得非常困难,有时甚至是不可能的。您可以通过在 LessTransform.Process 上设置断点来测试它方法。 LessTransform.Process仅在项目以 debug = false 运行时调用或 BundleTable.EnableOptimizations = true .

<link href="/Public/less?v=" rel="stylesheet"/>意味着 bundle 的结果是空的。

请确保至少有一个 less 文件生成 CSS 内容,如果是这样,请检查 LessTransform它必须是类:

public class LessTransform : IBundleTransform
{
void IBundleTransform.Process(BundleContext context, BundleResponse response)
{
response.Content = Less.Parse(response.Content);
response.ContentType = "text/css";
}
}

通过输入 BundleTable.EnableOptimizations = true;在 RegisterBundles 方法中,您可以在 Debug模式下覆盖优化机制( bundle 和缩小)的默认设置,然后您可以调试并检查 Less.Parse(response.Content); 的结果

关于c# - 当调试设置为 false 时,ASP.Net MVC4 包用于更少的文件不被渲染,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15549455/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com