如何让 IIS Express 在根之上提供静态内容

How to get IIS Express to serve static content above the root

我的主页位于我的网络根目录中,有一个以 ../../lib/ 开头的相对 url,因此 ../.. 在网络根目录之上。

当我尝试使用 IIS Express 为我的网站提供服务时,我得到了 404。

如何在不移动资源或更改 html 页面中的 url 的情况下使它工作?

可能有更直接的方法,但可以通过将以下内容添加到 web.config

我注意到 404 url 好像在根目录中,所以 match url 在根目录中。我猜它只是在解释路线时忽略了 ../..

首先,我在本地 IIS 上设置了一个虚拟目录来提供根目录以上的文件。我把它命名为lib,指向根上面的内容。此处显示的实际路径是我需要的,仅作为示例。

  <system.webServer>
    <rewrite>
      <rules>
        <rule name="Files Above The Root" stopProcessing="true">
          <match url="lib/(.*)" />
          <action type="Redirect"  url="http://localhost/lib/{R:1}" />
        </rule>
      </rules>
    </rewrite>
  </system.webServer>

我使用 IIS Express 只是为了调试,它与站点在生产中的工作方式无关。仅用于调试时,在线外着色是可以的。站点构建完全不依赖于此,并且配置不会干扰实际环境中的站点 运行,因为没有 url 会匹配此路径。