代码之家  ›  专栏  ›  技术社区  ›  Mark Kadlec

asp.net和visual studio根目录问题

  •  1
  • Mark Kadlec  · 技术社区  · 15 年前

    我看到了一些非常奇怪的事情,我想我会问斯塔克弗洛夫社区,如果他们知道答案。

    我有一个asp.net项目在一个环境中运行良好,但无法找出在另一个环境中样式发生了什么变化。

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

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

    但在另一个环境中(这是一个Windows7),我不得不改变它来工作:

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

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

    哪个环境配置正确?如何确定执行目录级别?我接下来要关注的是推进prod环境并猜测哪个配置是正确的。

    任何洞察都将不胜感激!

    4 回复  |  直到 15 年前
        1
  •  2
  •   Nelson Rothermel    15 年前

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

        2
  •  2
  •   Joel Coehoorn    15 年前

    ../ 几乎肯定是错的。也就是说,如果你在平原的环境中遇到问题 / 也可能是错的。尝试使用“~”运算符设置精确的应用程序根。

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

        3
  •  1
  •   Sky Sanders    15 年前

    ../ 只是错了。

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

    正如joel所说,使用'~'可以帮助解决这个问题,但是'~'只适用于页面处理的标记。除非您添加runat=server,否则它对css或js中的路径以及显示的链接标记都没有帮助。我想。即使这样也不能帮助您处理静态资源,如html。

    解决这个问题以在开发环境和prod环境之间提供一致的行为可能是一个挑战,但是一旦你得到了它,你就得到了它。

        4
  •  0
  •   John Nicholas    15 年前

    您确定主机设置正确吗?

    在过去,当让ig ncode在iis而不是dev服务器中工作时,我也遇到过类似的问题。