【问题标题】:Can I use an HTML base tag to resolve a virtual directory?我可以使用 HTML 基本标记来解析虚拟目录吗?
【发布时间】:2010-06-16 15:50:07
【问题描述】:

我有一个在 IIS 中作为子网站运行的 ASP.NET MVC Web 应用程序;假设它的路径类似于http://mysite.com/subweb

我有一个视图,它提供从 CMS 获得的内容。 CMS 编辑器输入了一些包含相对图像路径 的内容。

这在站点是根网站的生产服务器上工作正常,但在站点是根网站下的虚拟目录的登台服务器上却不行

路径应该是生产服务器上的

和 在登台服务器上。

是否可以使用标签来解析这个图片路径?

<head> <base href="http://mysite.com/subweb/" /> </head> <html> <body> <img src="/images/imga.png" /> </body> </html>

它似乎不起作用。谁能解释为什么或如果这是一种可行的方法?我不想要求内容编辑器了解网站部署选项(在 UAT 和生产之间发生变化)。

【问题讨论】:

  • 标签指定页面中超链接的默认地址。我猜它对图像 src 没有任何作用。

标签: asp.net virtual relative-path virtual-directory


【解决方案1】:

试试

   <img src="images/imga.png" />

使其成为相对 URL。当然没那么容易,内容编辑器必须改。但我相信这就是问题所在。以/ 开头的 URL 是从... (wonders) 域的顶级目录解析的?

【讨论】:

    【解决方案2】:

    基本标记仅影响相对 URL。尝试将您的图像标签更改为:

    <img runat="server" src="~/images/imga.png" />
    

    这甚至可以在您应用的子目录中使用。 .Net 会将“~/”解析为您的应用程序根目录。

    【讨论】:

    • 这不是一个可行的解决方案,因为我不能依赖内容编辑器总是添加 runat="server" 属性或 ~ 字符。
    • @Keith 要避免 runat="server" 属性,您可以使用 代替。
    猜你喜欢
    • 2011-02-01
    • 2011-06-17
    • 1970-01-01
    • 1970-01-01
    • 2012-09-14
    • 2011-01-27
    • 2011-04-25
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多