asp.net调试问题 - 网站路径

时间:2011-03-17 17:35:11

标签: asp.net

我的项目的布局是这样的:.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的根实际上是解决方案文件夹。

我想我只是做了一件非常明显的事情......

2 个答案:

答案 0 :(得分:2)

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

答案 1 :(得分:0)

你也可能最终必须在路径前加一个'〜',src =“〜/ images / logo_blue.jpg”。这告诉页面查找相对于站点根目录的此路径。当母版页被不同文件夹中的孩子使用时,母版页因丢失引用而臭名昭着。

根据引用的确切位置,您可能还需要在调用ResolveClientUrl时包装url。 在语法背后的代码中将是:

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。