使用ASP.NET MVC为仅经过身份验证的用户提供静态单页应用(静态HTML)。

3
我正在制作一个ASP.NET MVC网站,需要提供多个单页面应用程序。
单页面应用程序是由静态的html、css和javascript文件组成的文件夹,其中包括一个index.html文件和几个用于css、图片和javascript的文件夹。
我没有问题从IIS服务器的虚拟目录中提供单页面应用程序,但我想只向ASP.NET MVC解决方案中已认证的用户提供服务,因此我现在正在尝试从控制器方法中提供index.html文件。
当我通过加载和提供index.html文件来执行此操作时,我无法弄清楚如何提供index.html文件使用的所有css和javascript文件,因为它们都是相对路径与index.html引用,例如"css/style.css"和"js/somejavascript.js"。
我使用相对路径使其易于独立于ASP.NET MVC解决方案开发和调试单页面应用程序。
因此,我的问题基本上是,如何将具有相对URL到css和js文件的静态HTML文件仅提供给ASP.NET MVC网站中已经认证的用户?
2个回答

1
如果我理解正确:您有一些静态HTML文件,您不能/不想更改,并带有相对URL链接。在这种情况下,只需构建您的MVC路由,使相对路径起作用即可。例如,假设相对路径如下:
js/script.js
css/style.css

当您将其发送回浏览器时,它将相对于当前路径解析这些路径。因此,如果您从路由(例如)提供HTML文件:

然后浏览器将发送请求到:

因此请相应地调整路线,并确保任何备用路线都重定向到主要路线,例如/home/index应重定向到/home


-2

放置一个

[Authorize]

在控制器或操作上设置“index.html”服务的属性。

默认情况下,脚本和CSS是公共的,因此不需要对它们进行授权。


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