问题 配置IIS服务器以使用Aurelia框架和推送状态


我已经创建了一个基本的aurelia应用程序 这个回购 我试图摆脱URL栏中的#(hashtag)。

我有2个项目,一个在一台机器上运行WebApi,另一个在另一台机器上运行一个空的Web项目(不是MVC)。在 官方文件网站 它只说明了如何配置你的路线,但我的项目不是面向MVC的。

如何在访问时从Web.config配置IIS服务器 http://localhost/home 它应该启动aurelia框架而不是404未找到的页面?


6503
2017-08-20 09:40


起源



答案:


我正在使用需要web.config来正确处理非散列路由的Azure,它只是将所有路由重定向到包含aurelia应用程序的index.html。没有它(或类似的技术)它给404s。

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
    <system.webServer>
     <rewrite>
             <rules>
                 <remove name="redirect all requests" />
                 <rule name="redirect all requests" stopProcessing="true">
                     <match url="^(.*)$" ignoreCase="false" />
                     <conditions logicalGrouping="MatchAll">
                         <add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" pattern="" ignoreCase="false" />
                     </conditions>
                     <action type="Rewrite" url="index.html" appendQueryString="true" />
                 </rule>
             </rules>
         </rewrite>
    </system.webServer>
</configuration>

希望这可以帮助。


16
2017-08-20 11:52



谢谢。我最终使用类似的东西:) - Laurentiu Stamate
嘿马特,你把它放在哪里 web.config?我在里面添加了我的 wwwroot 文件夹,但我仍然得到404的 - Sergi Papaseit
@SergiPapaseit就在我放的地方,我唯一一次得到404s的是一种azure默认不处理的文件,比如woff或json文件。 - Matt McCabe
提示:你需要拥有 IIS URL重写扩展 安装在Windows服务器上以使其生效。 - Juliën


答案:


我正在使用需要web.config来正确处理非散列路由的Azure,它只是将所有路由重定向到包含aurelia应用程序的index.html。没有它(或类似的技术)它给404s。

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
    <system.webServer>
     <rewrite>
             <rules>
                 <remove name="redirect all requests" />
                 <rule name="redirect all requests" stopProcessing="true">
                     <match url="^(.*)$" ignoreCase="false" />
                     <conditions logicalGrouping="MatchAll">
                         <add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" pattern="" ignoreCase="false" />
                     </conditions>
                     <action type="Rewrite" url="index.html" appendQueryString="true" />
                 </rule>
             </rules>
         </rewrite>
    </system.webServer>
</configuration>

希望这可以帮助。


16
2017-08-20 11:52



谢谢。我最终使用类似的东西:) - Laurentiu Stamate
嘿马特,你把它放在哪里 web.config?我在里面添加了我的 wwwroot 文件夹,但我仍然得到404的 - Sergi Papaseit
@SergiPapaseit就在我放的地方,我唯一一次得到404s的是一种azure默认不处理的文件,比如woff或json文件。 - Matt McCabe
提示:你需要拥有 IIS URL重写扩展 安装在Windows服务器上以使其生效。 - Juliën