我正在制作一个ASP.NET MVC网站,需要提供大量单页应用程序。
单页应用程序是静态html,css和javascript文件,其中包含index.html文件和css,images和javascript的文件夹。
从IIS服务器中的虚拟目录提供单页应用程序没有问题,但是我想仅将它们提供给ASP.NET MVC解决方案中经过身份验证的用户,因此我现在正在尝试提供索引来自控制器方法的.html文件。
当我通过加载和提供index.html文件来执行此操作时,我无法弄清楚如何提供index.html文件使用的所有css和javascript文件,因为它们由index.html引用,具有相对路径比如“css / style.css”和“js / somejavascript.js”。
我使用相关部分,可以轻松地独立于ASP.NET MVC解决方案开发和调试单页面应用程序。
所以我的问题基本上是,如何将静态HTML文件与css和js文件的相对URL一起提供给ASP.NET MVC站点中仅经过身份验证的用户?
答案 0 :(得分:1)
如果我理解:你有一些静态的HTML文件,你不能/不想改变,有相对的URL链接。在这种情况下,只需构建您的MVC路由,以便相对路径起作用。例如,假设相对路径是这样的:
js/script.js
css/style.css
当您将其发送回浏览器时,它将解析相对于当前路径的路径。因此,如果您从路线(例如)提供HTML文件:
然后浏览器会将请求发送到:
因此,相应地调整路线,并确保任何替代路线重定向到主路线,例如/home/index
应重定向到/home
。
答案 1 :(得分:-2)
放置
[Authorize]
控制器上的属性或服务“index.html”的操作。
默认情况下,脚本和css是公共的,因此不需要授权。