2012-03-25 66 views
2

我只是新来创建和启动的网站,我碰到了一个绊脚石。相对和绝对URL与目录

我有一个分配给它的3个不同域的主机帐户。每个域都映射到主目录的一部分。所以它是这样的:

My Site - 
      -Site1 
      -Site2 
      -Site3 

但我似乎无法使用相同的URL在托管站点本地工作,反之亦然。这是我在一个链接中使用的代码示例:

<asp:MenuItem NavigateUrl="/Default.aspx" Text="Home"/> 

当上传到主机这工作得很好,但在本地我得到一个错误:

HTTP错误404 - 未找到。

当我离开关/

<asp:MenuItem NavigateUrl="About.aspx" Text="About"/> 

这将在本地工作,但托管时,我会得到一个错误:

Resource cannot be found:
Requested URL: /Site1/Site1/About.aspx

我用〜,../,默认。 aspx等,它会一直工作在一个,但不是其他。我敢肯定,我错过了一些简单但却无法解决的问题。

回答

0

试试这个

<asp:MenuItem NavigateUrl="/ProgectName/About.aspx" Text="About"/> 

或者 服务器端

Menu1.Items.Add(new MenuItem { NavigateUrl = Page.ResolveUrl("About.aspx"), Text = "About"}); 
+0

谢谢您的回答,冒牌货它仍然不工作,但如果它找到一个解决方案,我会后它。 – Hulaz 2012-04-04 09:20:06

+0

只要有人遇到此问题,我已经解决了这个问题。我使用的是可视化Web开发人员,如上所述,我无法在托管的开发服务器上使用相同的路径。问题出在VWD中的虚拟路径上,在解决方案资源管理器中,单击链接网站文件夹本身(图标显示一个世界),在属性部分中将虚拟路径更改为/。我知道这可能是显而易见的,但只要有人遇到类似的问题! – Hulaz 2012-04-15 09:26:42