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 站点中经过身份验证的用户?

4

2 回答 2

1

如果我理解:您有一些不能/不想更改的静态 HTML 文件,带有相对 URL 链接。在这种情况下,只需构建您的 MVC 路由,以便相对路径起作用。例如,假设相对路径是这样的:

js/script.js
css/style.css

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

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

所以相应地调整路线,并确保任何备用路线重定向到主要路线,例如/home/index应该重定向到/home.

于 2012-09-08T05:54:21.087 回答
-2

放置一个

[Authorize]

用于服务“index.html”的控制器或操作的属性。

默认情况下,脚本和 css 是公开的,因此不需要授权。

于 2012-09-08T05:47:04.003 回答