【问题标题】:asp.net debugging issue - website pathsasp.net 调试问题 - 网站路径
【发布时间】:2011-03-17 17:35:10
【问题描述】:

我的项目的布局是这样的,即 .sln 和下面的一堆文件夹 - 所有这些文件夹中都有一个类库项目。在该文件夹列表中,还有一个包含网站的文件夹(称为网站)

在网站上,我有各种图片、母版页等文件夹。

在母版页中,我正在加载图像并引用它:src="/images/logo_blue.jpg",因为那是图片所在的位置。

但是,当我在调试器中运行代码时,母版页没有拾取任何 css 或 js 文件,也没有图像 - 我觉得这是因为 IE 中的网站路径被指定为:

http://localhost:61249/Website/Default.aspx

如果我右键单击图像应该在的 x,它正在查看 http://localhost:61249/images/logo_blue.jpg" 但似乎可以在 http://localhost:61249/website/images/logo_blue.jpg"

为什么调试器会在路径中插入虚假的“网站”?为什么实际网站的根目录不是网站文件夹 - 看起来 webste 的根目录实际上是解决方案文件夹。

我想我只是在做一些非常明显的事情......

【问题讨论】:

    标签: asp.net


    【解决方案1】:

    在 Web 选项卡上检查您的 Web 项目的属性页面。应该有一个虚拟路径设置 - 你希望它只是“/”。

    【讨论】:

      【解决方案2】:

      您还可能最终不得不在路径前添加一个“~”,即 src="~/images/logo_blue.jpg"。这告诉页面查找相对于站点根目录的路径。母版页在被不同文件夹中的子级使用时会丢失其引用而有些臭名昭著。

      根据具体引用的位置,您可能还必须将 url 包装在对 ResolveClientUrl 的调用中。 在语法背后的代码中是:

      src=Page.ResolveClientUrl("~/images/logo_blue.jpg")
      

      如果你使用的是标准的 HTML 图像标签,它看起来像这样:

      <img src='<%= Page.ResolveClientUrl("~/images/logo_blue.jpg") %>' />
      

      或者,如果您使用的是 asp 图像控件,您的标记将是:

      <asp:Image ID="Image1" runat="server" ImageUrl='<%# Page.ResolveClientUrl("~/images/logo_blue.jpg") %>' />
      

      但在这种情况下,您还必须在某个时候调用控件的数据绑定方法,以便解析 URL。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2010-11-14
        • 1970-01-01
        • 2012-11-14
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多