我首先要说的是我非常(非常)新的Azure。我刚刚发布了一个AngularJS应用程序,我遇到了一个令人恼火的问题。
第一次从visual studio发布应用程序时,它将文件放在 site \ wwwroot 中。这很好,因为我刚刚更改了虚拟路径以查看 www 子文件夹。
因此新设置使 / 等于 site \ wwwroot \ www
这是因为我网站的代码实际上位于此www文件夹中。一切正常!太好了!
但是,下次我发布时,整个网站都放在 site \ wwwroot \ www 中,这意味着要进入我的索引页面,我必须去站点\ wwwroot的\ WWW \ WWW
出于某种原因,通过定义“相对于站点根目录的物理路径”,它会更改整个发布路径。这有点意义,但是这个问题还存在吗?可能是一种我还没有遇到的不同的做法或设置。
非常感谢任何提示或建议!
提前致谢。
答案 0 :(得分:0)
由于您已将/
映射到site\wwwroot\www
,因此稍后的发布将应用于site\wwwroot\www
。根据我的理解,您可以通过ftp工具等将您的网络内容直接部署到www
到site\wwwroot
。或者您可以使用URL Rewrite而不是更改/
的虚拟路径。您在web.config
文件下的重写规则如下:
<强>的web.config:强>
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<system.webServer>
<rewrite>
<rules>
<rule name="hide www sub directory" stopProcessing="true">
<match url="^www/(.*)"/>
<action type="Redirect" url="{R:1}" appendQueryString="true" redirectType="Permanent"/>
</rule>
<rule name="rewrite to sub directory">
<match url="^(?!www)(.*)" />
<conditions>
<add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" />
<add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" />
</conditions>
<action type="Rewrite" url="www/{R:1}" />
</rule>
</rules>
</rewrite>
</system.webServer>
</configuration>
注意: we.config
文件位于site\wwwroot
下。
<强> TEST:强>
要访问index.html,您需要访问https://brucewebapp.azurewebsites.net/www/index.html
。使用网址重写规则,您只需访问https://brucewebapp.azurewebsites.net/index.html
,如下所示: