首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Azure -将站点部署到目录,但使用子目录作为站点。

Azure -将站点部署到目录,但使用子目录作为站点。
EN

Stack Overflow用户
提问于 2017-10-20 07:16:04
回答 1查看 901关注 0票数 1

首先,我想说我对Azure非常(非常)陌生。我刚刚发布了一个AngularJS应用程序,我遇到了一个令人恼火的问题。

当第一次从visual studio发布应用程序时,它会将文件放在site\wwwroot中。这很好,因为当时我更改了虚拟路径,以查看www子文件夹。

因此,新设置使/等于site\wwwroot\www

这是因为我的站点的代码实际上位于这个www文件夹中。一切都成功了!太棒了!

然而,当我下一次发布时,整个站点都是站点\wwwroot\www中的位置,这意味着要到达我的索引页面,我必须转到site\wwwroot\www\www。

由于某些原因,通过定义“相对于站点根的物理路径”,它更改了整个发布路径。这是有道理的,但在这个问题上还存在吗?可能是一种不同的练习或环境,我还没见过。

任何建议或建议都将不胜感激!

提前谢谢。

EN

回答 1

Stack Overflow用户

发布于 2017-10-20 08:16:57

由于您已经将/映射到site\wwwroot\www,以后的发布将应用于site\wwwroot\www。根据我的理解,您可以通过ftp工具将www下的web内容直接部署到site\wwwroot,或者您可以使用URL重写而不是更改/的虚拟路径。以及重写web.config文件中的规则如下:

web.config:

代码语言:javascript
复制
<?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下面。

测试:

古都

为了访问index.html,您需要访问https://brucewebapp.azurewebsites.net/www/index.html。使用url重写规则,您可以访问https://brucewebapp.azurewebsites.net/index.html,如下所示:

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46844098

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档