我正在为我的Web应用程序设置一个自定义的404错误页面。麻烦的是,此应用程序将部署到多个不同的环境中。有时它会在虚拟目录中,有时它不会。
我有一个名为ErrorPages的目录中的错误页面,并设置了我的配置,如下所示:
<httpErrors errorMode="Custom" existingResponse="Replace"> <remove statusCode="404"/> <error statusCode="404" path="/VirtualDir/ErrorPages/404.aspx" responseMode="ExecuteURL" /> </httpErrors> </system.webServer>
麻烦的是当我将它部署到网站的根目录/ VirtualDir部件需要删除。如果我在部署之前删除它,那么我需要在部署到VirtualDirectory时将其添加回来。有什么办法可以将路径设置为相对于VirtualDirectory而不是站点?
我试过使用〜但是也不行,像这样:
<httpErrors errorMode="Custom" existingResponse="Replace"> <remove statusCode="404"/> <error statusCode="404" path="~/ErrorPages/404.aspx" responseMode="ExecuteURL" /> </httpErrors> </system.webServer>
解决方法
您可以使用web.config转换来设置每个环境的路径:
web.config
<httpErrors errorMode="Custom" existingResponse="Replace"> <remove statusCode="404"/> <error statusCode="404" path="/VirtualDir/ErrorPages/404.aspx" responseMode="ExecuteURL" /> </httpErrors>
web.Release.config
<httpErrors> <error statusCode="404" path="/ErrorPages/404.aspx" esponseMode="ExecuteURL" /> </httpErrors>