在ASP.NET MVC中提供无扩展名的静态文件;获取404错误

3
出于某种原因(哎呀,假设我们需要),我们在ASP.NET MVC应用程序中有一个没有扩展名的JavaScript文件和CSS文件。 JavaScript文件位于路径〜/ Scripts / js ,CSS文件位于〜/ Styles / css 。 这些都是包含JS和CSS的静态文件,但没有文件扩展名。
现在,当我尝试在浏览器中加载资源时,这两个路径会返回404错误。 我需要做什么来使我的ASP.NET MVC应用程序提供这些无扩展名的文件(并使用正确的MIME类型提供它们)? 我猜测在web.config中有些东西,将特定的URL模式映射到静态文件的HTTP处理程序。 显然,我的谷歌搜索技巧不够好-请原谅我。

你是否正在使用捆绑和缩小文件? - MikeSmithDev
1
说实话,没有扩展名的URI是由ASP.NET MVC路由框架处理的,这就是为什么你会收到404错误:没有路由/操作来响应特定的请求URL。 - Chris Pratt
扩展Chris Pratt的答案,我认为你很难让IIS正确地提供这些内容。或者,您可以创建控制器操作,将内容从磁盘流式传输到响应中,并相应地设置内容类型。 - esmoore68
1个回答

0

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

我没有尝试过这样的事情, 但它似乎会起作用。

如果确实如此, 也许你可以创建一个用户控件, 这样你就可以将其放在所有页面中, 而不必每次重复。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接