我正在制作一个ASP.NET的MVC网站,需要服务的单页面应用程序数量。
一个单页面应用程序是静态的html,css和javascript文件,一个包含index.html文件的文件夹,以及一些css,图片和javascript文件夹。
我可以从IIS服务器中的虚拟目录提供单页应用程序,但是我希望在IIS解决方案中只为经过身份验证的用户提供服务,因此我现在正在尝试从控制器方法提供index.html文件。
当我通过加载和提供index.html文件来执行此操作时,我无法弄清楚如何提供index.html文件使用的所有css和javascript文件,因为index.html使用"css/style.css“和”js/omejavascript.js“等相对路径引用它们。
我使用相关的部分来使开发和调试单页面应用程序独立于ASP.NET MVC解决方案变得容易。
所以我的问题基本上是,我如何才能在ASP.NET MVC站点中只向经过身份验证的用户提供带有css和js文件相对urls的静态HTML文件?
发布于 2012-09-08 13:54:21
如果我理解的话:你有一些静态的HTML文件,你不能/不想改变它们,有相对的URL链接。在这种情况下,只需构建MVC路由,以使相对路径有效。例如,假设相对路径如下:
js/script.js
css/style.css当您将其发送回浏览器时,它将解析相对于当前路径的那些路径。因此,如果您从路由(比方说)提供HTML文件:
然后浏览器将请求发送到:
因此,相应地调整路由,并确保所有备用路由都重定向到主路由,例如/home/index应该重定向到/home。
发布于 2012-09-08 13:47:04
放置一个
[Authorize]用于服务"index.html“的控制器或操作的属性。
默认情况下,脚本和css是公共的,因此不需要授权。
https://stackoverflow.com/questions/12328348
复制相似问题