如何让 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 会匹配此路径。
我的主页位于我的网络根目录中,有一个以 ../../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 会匹配此路径。