【问题标题】:Could not find images in .NET web application在 .NET Web 应用程序中找不到图像
【发布时间】:2012-02-14 05:58:10
【问题描述】:

我将页面的一些 html 内容保存到数据库中。根据情况,我从数据库中获取内容的 html 并将其放入页面。

示例内容:

<p>
Test Content
<img src="~/images/test.jpg" />
</p> 

问题是~ 没有按我的预期工作。如何将~ 配置为 Web 应用程序的任何文件的绝对路径,例如在 .css、.aspx 中,所以它会呈现为 www.test.com/images/test.jpg?

根据回答:

我有一个在数据库中的内容,因此即使我将它们添加 runat=server,图像的 src 或锚点 href 也会呈现为 html 内容。所以我应该做的是,在将字符串放入 aspx 页面之前,我应该运行一个函数并将此内容作为参数提供给它。然后将网站的绝对路径放在任何 src 或 href 标记中,其中有 ~ 。这可以通过正则表达式来完成。

【问题讨论】:

    标签: .net path relative-path absolute-path


    【解决方案1】:

    对于 CSS 内容链接,您可以按照下面的相对路径 HTML 指南进行操作,

     ../filename  - links up one directory
     ../../filename - filename is located two directories up
     /filename - domain name root
     filename - file is in current directory
     folder/filename - file is located in folder sub-folder
    

    对于您可以使用的 .aspx 页面中的 HTML,

     //WebForms
     src="<%#VirtualPathUtility.ToAbsolute("~/filename")%>"
    
     //MVC 
     src="<%=Url.Content("~/filename")%>"
    

    【讨论】:

      【解决方案2】:

      只要去掉“~”就可以随时使用“/”指向网站的根目录

      就这样

      <p>
      Test Content
      <img src="/images/test.jpg" />
      </p> 
      

      【讨论】:

      • 如果请求的页面类似于 www.test.com/article/this-is-good 那么您的示例将指向 www.test.com/article/images/test.jpg 而不是 www .test.com/images/test.jpg
      • 不,不会的。会好的。开始斜线代表根。
      【解决方案3】:

      请添加

      runat=服务器

      -img 的属性

      【讨论】:

      • 如果 img 已经在 aspx 页面中,这实际上是有效的。但是这里所做的是将 html 内容作为字符串,所以 ~ 没有作为服务器端控件的含义。
      猜你喜欢
      • 2022-01-16
      • 1970-01-01
      • 2023-03-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-11-27
      • 2015-06-08
      • 2021-10-31
      相关资源
      最近更新 更多