【问题标题】:Slash (/) vs tilde slash (~/) in style sheet path样式表路径中的斜线 (/) 与波浪线斜线 (~/)
【发布时间】:2011-09-19 10:16:29
【问题描述】:

ASP.NET 提供了两种指定样式表路径的方法:

<link href="/common/black_theme/css/style.css" rel="stylesheet">   (this is working)
<link href="~/common/black_theme/css/style.css" rel="stylesheet">  (this is not working)
  • 如何解决这些路径?
  • 为什么生成的路径不同?
  • 在这种情况下我应该选择哪一个?

据我所知,~ 代表应用程序的根目录。 “common”是 IIS 中网站根目录下的文件夹(名为 testsite.demo)。

物理路径:D:\Physicalpath\WarpFirstSite\testsite.demo
“普通”文件夹:D:\Physicalpath\WarpFirstSite\testsite.demo\common

【问题讨论】:

    标签: asp.net path stylesheet relative-path absolute-path


    【解决方案1】:

    如果您在链接标签中添加runat="server",那么它会完美运行....

    像这样……

    <link href="~/common/black_theme/css/style.css" rel="stylesheet" runat="server"> 
    

    (这也有效)

    【讨论】:

    【解决方案2】:

    第二个不起作用,因为它不是服务器端的 asp.net 代码以外的任何东西都可以识别的路径。而且由于您的链接标记是常规 html 而不是服务器控件,因此它永远不会被处理。

    【讨论】:

      【解决方案3】:
      • / - 站点根目录
      • ~/ - 应用的根目录

      不同之处在于,如果您的网站是:

      http://example.com
      

      你有一个应用程序myapp on:

      http://example.com/mydir/myapp
      

      / 将返回站点的根目录 (http://example.com),

      ~/ 将返回应用程序的根 (http://example.com/mydir/)。

      【讨论】:

      • @Kyasa - 你需要解释什么?
      • 我对应用程序路径感到困惑。是站点example.com 映射到的物理路径吗?
      • @Kyasa - 它是 IIS 虚拟应用程序。见这里 - learn.iis.net/page.aspx/150/…
      • 不错的链接。所以我们可以在链接标签中使用~而不用 runat=server 标签?
      • @Kyasa - 不,这是服务器端功能。
      猜你喜欢
      • 2021-02-02
      • 1970-01-01
      • 1970-01-01
      • 2016-09-03
      • 1970-01-01
      • 1970-01-01
      • 2011-03-12
      • 2017-11-02
      • 2019-05-31
      相关资源
      最近更新 更多