我想知道我在这里做得不对的地方是什么.我使用的是ASP.NET C#MVC4,我想使用新的CSS/js优化功能.

这是我的HTML部分

@Styles.Render("~/content/css")

这是我的BunduleConfig.cs

bundles.Add(new StyleBundle("~/content/css").Include(
                        "~/content/css/reset.css",
                        "~/content/css/bla.css"));

// BundleTable.EnableOptimizations = true;

输出(Works):

<link href="/content/css/reset.css" rel="stylesheet"/>
<link href="/content/css/bla.css" rel="stylesheet"/>

然而,当我取消注释BundleTable.EnableOptimizations = true;时,html输出如下所示

<link href="/content/css?v=5LoJebKvQJIN-fKjKYCg_ccvmBC_LF91jBasIpwtUcY1" rel="stylesheet"/>

这是,当然是404.我不知道我哪里做错了,请帮帮忙,第一次使用MVC4.

推荐答案

我想问题是你把包放在一个虚拟的URL上,这个URL实际上存在,但它是一个目录.

MVC是从您的Bundle 包生成一个虚拟文件,并从您指定为Bundle 包路径的路径提供它.

该问题的正确解决方案是使用Bundle 包路径,该Bundle 包路径不直接映射到现有目录,而是在该目录内使用虚拟文件名(也不映射到真实文件名).

例子:

如果您的网站有一个名为/content/css的文件夹,请按如下方式创建css包:

在BundleConfig.反恐精英:

bundles.Add(new StyleBundle("~/content/css/AllMyCss.css").Include(
                        "~/content/css/reset.css",
                        "~/content/css/bla.css"));

在这一页上:

@Styles.Render("~/content/css/AllMyCss.css")

请注意,这假设您没有名为AllMyCss的文件.css在你的css文件夹中.

Asp.net相关问答推荐

在 AppConfig.json 中存储对象的最佳方式

ASP.NET Core 2.0 Razor 与 Angular/React/等

如何在 ASP.Net Core Razor 页面上重定向

ASP.NET MVC Url Route 支持(点)

为什么 aspnet 核心从 Docker 内部的端口 80 启动?

我应该如何将 DbContext 实例注入 IHostedService?

.NET - c# - 需要跨分区查询,但在 DocumentDB 数据访问上禁用了问题

包含重复的“内容”项目.默认情况下,.NET SDK 包含项目目录中的“内容”项

在哪里可以记录 ASP.NET Core 应用程序的启动/停止/错误事件?

如何在 ASP.NET MVC 中启用跨源请求

ASP.NET Core Web API 身份验证

如何提取自定义标头值?

创建项目 ASP.NET Core (.NET Core) 和 ASP.NET Core (.NET Framework) 有什么区别

什么是实体框架中的复杂类型以及何时使用它?

ASP.Net-Core 中的自定义身份验证

IIS 配置错误 - 此配置部分不能用于此路径

在 ASP MVC 6 中将多个路由分配给同一控制器或操作

具有多个构造函数的 ASP.NET Core 依赖注入

找不到路径的一部分... bin\roslyn\csc.exe

找不到方法:'!!0[] System.Array.Empty()'