我有一个 Angular 2 rc-2 应用程序,实现了基本路由。路径是/path1
这是默认路径并且/path2
.回家之路/
重定向到/path1
。当我在本地(lite-server)运行它时,一切正常。我设法将此应用程序部署到 Azure Web 应用程序。该应用程序工作正常,但如果我在进入时刷新页面/path1
or /path2
我收到此错误:The resource you are looking for has been removed, had its name changed, or is temporarily unavailable.
一种可能的方法是实现 url 重写。我在项目中添加了一个 web.config 文件
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<system.webServer>
<rewrite>
<rules>
<clear />
<!-- check if its path1 url and navigate to default page -->
<rule name="Path1 Request" enabled="true" stopProcessing="true">
<match url="^path1" />
<action type="Redirect" url="/index.html" logRewrittenUrl="true" />
</rule>
<!-- check if its path2 url and navigate to default page -->
<rule name="Path2 Request" enabled="true" stopProcessing="true">
<match url="^path2" />
<action type="Redirect" url="/index.html" logRewrittenUrl="true" />
</rule>
</rules>
</rewrite>
</system.webServer>
</configuration>
在这种情况下,我可以进行刷新而不会收到此错误消息。但是任何刷新都会将我重定向到默认网址。我刷新自/path2
它把我重定向到/path1
(默认网址)。
有什么想法可以改善刷新吗? :)
你必须添加网络配置文件到你的根 Angular2 应用程序。这就是 Azure 服务器(IIS 服务器)的工作原理。
我使用 webpack 所以我把它放上src文件夹。不要忘记将其复制到您的dist部署时的文件夹。我用了复制Webpack插件设置我的 webpack 来复制它。
这是 web.config 文件:
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<system.webServer>
<rewrite>
<rules>
<clear />
<rule name="Redirect to https" stopProcessing="true">
<match url="(.*)" />
<conditions>
<add input="{HTTPS}" pattern="off" ignoreCase="true" />
</conditions>
<action type="Redirect" url="https://{HTTP_HOST}{REQUEST_URI}" redirectType="Permanent" appendQueryString="false" />
</rule>
<rule name="AngularJS Routes" stopProcessing="true">
<match url=".*" />
<conditions logicalGrouping="MatchAll">
<add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" />
<add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" />
</conditions>
<action type="Rewrite" url="/" />
</rule>
</rules>
</rewrite>
</system.webServer>
</configuration>
它有 2 条规则:
第一条规则是将所有调用重定向到 https。如果您不使用 https,请将其删除。
第二条规则是解决你的问题。我在这里得到了第二条规则的参考(感谢用户重力成瘾来自 www.reddit.com):
https://www.reddit.com/r/Angular2/comments/4sl719/moving_an_angular_2_app_to_a_real_server/ https://www.reddit.com/r/Angular2/comments/4sl719/moving_an_angular_2_app_to_a_real_server/
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)