asp.net和Visual studio根目录问题

时间:2010-04-30 15:36:02

标签: asp.net visual-studio-2008

我看到一些非常奇怪的东西,并且我想问Stackoverflow社区是否知道答案。

我有一个在一个环境中运行良好的asp.net项目,但无法弄清楚在另一个环境中样式发生了什么。

在第一个环境(Windows 2008 Server)中,以下链接正常工作:

<link href="/Styles/09/style.css" rel="stylesheet" type="text/css" />

但在其他环境(它是Windows 7)中,我不得不将其更改为:

<link href="../Styles/09/style.css" rel="stylesheet" type="text/css" />

请注意,目录似乎在Win7的一个目录中向前移动,发生了什么?就像“运行”目录现在似乎是\ bin目录而不是home!

哪种环境配置正确?如何确定执行目录级别?我对未来的关注是推动产品环境并猜测哪种配置是正确的。

任何见解都将受到赞赏!

4 个答案:

答案 0 :(得分:2)

../几乎肯定是错的。也就是说,如果你在不同环境中遇到问题,普通/也可能是错误的。尝试使用'〜'运算符来设置准确的应用程序根目录。

此链接可帮助您弄清楚到底发生了什么:
http://msdn.microsoft.com/en-us/library/ms178116.aspx

答案 1 :(得分:2)

第一种方法是从根路径搜索,第二种方法首先上传一个目录。我的猜测是您的站点在根(www.example.com/)托管的第一台服务器上,而在第二台服务器上它托管在子目录(www.example.com/mysite/)中。在第二种情况下,它会查看www.example.com/Styles而不是预期的www.example.com/mysite/Styles

答案 2 :(得分:1)

../是错的。

/是网站根目录。如果在webdev上运行,这将是您应用的根目录。当您将应用程序移动到IIS时,它将成为IIS站点的根目录,例如http://localhost,而不是应用的根,http://localhost/yourApp

正如Joel所说,使用'〜'可以帮助解决这个问题,但'〜'仅适用于由页面处理的标签。除非你添加runat = server,否则它不会帮助你获取css或js中的路径以及链接标记。我想。即便这样也无法帮助你使用像html这样的静态资源。

为了在你的开发和生产环境之间提供一致的行为,这可能很有挑战性,但是一旦你得到它就可以得到它。

答案 3 :(得分:0)

您确定托管设置是否正确。

过去,当gettig ncode在IIS而不是开发服务器上工作时,我遇到了类似的问题。