我想知道我在这里做得不对的地方是什么.我使用的是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相关问答推荐

try 在 .net 中使用 MS Graph 添加新的应用程序角色时出现 ODataError

.net 中的 [] 括号是什么?

如何使用 SmtpClient.SendAsync 发送带有附件的邮箱?

如何从 web.config 中读取系统值并在 ASP.NET MVC C# 方法中使用

我可以在 Visual Studio 2010 中将任务列表项添加到 csHTML 吗?

正在检索组件的 COM 类工厂......错误:80070005 访问被拒绝. (来自 HRESULT 的异常:0x80070005 (E_ACCESSDENIED))

.NET 核心 IdentityUser 模型中规范化邮箱和用户名的用途是什么?

如何将 ASP.NET MVC5 身份验证添加到现有数据库

最佳服务器端 .NET PDF 编辑库

ASP.NET 中的 <% %>(嵌入式代码块)

回发后动态创建的控件丢失数据

带有文件名的 ASP.net MVC4 WebApi 路由

如何将枚举类型绑定到 DropDownList?

您如何在 .net WebApi2 应用程序中的 OAuth2 令牌请求中使用额外参数

单击按钮时播放哔声

为 ASP.NET Core MVC 显示 404 Not Found 页面

如何使用 WebRequest 发布数据并从网页获取响应

如何获取程序集的最后修改日期?

MVC4 - 当优化设置为 true 时Bundle 不起作用

RegisterStartupScript 不适用于 ScriptManager、Updatepanel.这是为什么?