1

将 ASP.NET MVC3 与 Razor 和 C# 一起使用。

假设我有一个应用程序设置为通过 IIS 作为普通网站运行,但现在我想将此应用程序作为另一个网站下的子应用程序运行。例如,子应用程序将存储在网站根目录下名为“SubApp”的文件夹中(例如 www.example.com/SubApp/)。

如果我在 SubApp 的 razor mark-up/code-behind 中引用诸如“~/Images/picture.gif”之类的 URL,它将解析为 SubApp 的根:www.example.com/SubApp/Images/picture.gif

但是,如果我通过常规 HTML(在 SubApp 中)引用“/Images/picture.gif”,它将解析为 SubApp 父网站的根:www.example.com/Images/picture.gif

是否有一种简单、可靠的方法可以将这些 HTML URL 解析到子应用程序的根目录,而无需重写它们以使用 Razor?在这些情况下处理 URL 的最佳方法是什么?

4

1 回答 1

1

如果您正在处理将由浏览器直接请求的纯 HTML 页面,您应该使用相对 URL。例如,如果您有:

/SubApp
    /Images
        foo.gif
    page.html

你应该使用:

<img src="foo.gif" />

在 page.html 内。您可以使用“../”来上目录等。

不幸的是,如果您正在处理更复杂的服务器端路由场景,您将需要使用某种服务器端代码来处理它。

于 2012-05-01T01:01:57.173 回答