我的项目的布局是这样的:.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的根实际上是解决方案文件夹。
我想我只是做了一件非常明显的事情......
答案 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。