【问题标题】:Serving extensionless static files in ASP.NET MVC; getting 404s在 ASP.NET MVC 中提供无扩展名的静态文件;得到 404
【发布时间】:2015-04-14 18:31:42
【问题描述】:

无论出于何种原因(呃,假设我们必须这样做),我们的 ASP.NET MVC 应用程序中有一个 JavaScript 文件和一个没有扩展名的 CSS 文件。 JavaScript 文件位于路径~/Scripts/js,CSS 文件位于~/Styles/css。这些是分别包含 JS 和 CSS 的静态文件,但没有文件扩展名。

现在,当我尝试在浏览器中加载资源时,我得到这两个路径的 404。我需要做什么才能使我的 ASP.NET MVC 应用程序为这些无扩展名文件提供服务(并使用正确的 MIME 类型为它们提供服务)? web.config 中的某些内容并将特定的 URL 模式映射到静态文件的 HTTP 处理程序,我猜。显然我的谷歌搜索能力不够——请原谅我。

【问题讨论】:

  • 你在使用捆绑和缩小吗?
  • 不管怎样,无扩展 URI 由 ASP.NET MVC 路由框架处理,这就是为什么您会收到 404:没有路由/操作来响应该特定请求 URL。跨度>
  • 扩展 Chris Pratt 的回答,我认为您将很难让 IIS 正确地为这些服务。或者,您可以创建控制器操作,将内容从磁盘流式传输到响应,并相应地设置内容类型。

标签: asp.net asp.net-mvc iis asp.net-mvc-routing


【解决方案1】:

我认为 esmoore68 可能有最好的答案...但是...如果您不想这样做,我想知道您是否可以在页面上声明样式(和脚本)(而不是引用文件),也许在您需要这些标签的页面上使用标签,并实际在代码隐藏中打开文件,将它们作为文本读取,然后将它们写入页面加载的标签中?

具体来说,我没有尝试过类似的方法,但似乎它会起作用。

如果是这样,也许您可​​以创建一个用户控件,这样您就可以将其放在所有页面中,而不是每次都重复。

【讨论】:

    最近更新 更多