我看到一些非常奇怪的东西,并且我想问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!
哪种环境配置正确?如何确定执行目录级别?我对未来的关注是推动产品环境并猜测哪种配置是正确的。
任何见解都将受到赞赏!
答案 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而不是开发服务器上工作时,我遇到了类似的问题。