ember.js - 如何在 IIS 中运行 emberJS 应用程序?

标签 ember.js iis-7 ember-cli

我有一个使用 Ember CLI 构建的 EmberJS 应用程序。
为了部署我的应用程序,我使用了 ember build --release使用 Ember CLI 命令,并从 /dist 复制输出文件夹到与 IIS 映射的文件夹中。
一切似乎都很好。当您在 SPA 中导航时,会更新 url,从 Web 服务等获取数据。但是如果我尝试访问 localhost/someurl直接,我得到一个 404 Not Found 错误。我猜这是因为 IIS 7 中的路由,但我怎样才能使它与 Ember 路由一起工作?

最佳答案

我知道这个问题很老,但我使用 IIS URL 重写模块 (https://www.iis.net/downloads/microsoft/url-rewrite) 找到了一个非常好的解决方案,该模块基本上模仿了 apache 的 mod_rewrite。

基本上,您在 web.config 中定义重写规则,并将 dist/* 文件放在您放入 IIS 目录中的文件旁边,然后进入城镇。

这是我的 web.config 中的重写规则 block 。

<configuration>
    <system.webServer>
        <rewrite>
            <rules>
                <rule name="CatchAll For Ember" patternSyntax="Wildcard" stopProcessing="true">
                    <match url="*" />
                    <action type="Rewrite" url="index.html" />
                    <conditions>
                        <add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" />
                        <add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" />
                    </conditions>
                </rule>
            </rules>
        </rewrite>
    </system.webServer>
</configuration>

如果您删除 IsDirectory 检查,那么它仍将使用 IIS 的 404 错误目录。

这允许您在 IIS 中托管 ember 应用程序,而无需使用/#/技术。

关于ember.js - 如何在 IIS 中运行 emberJS 应用程序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25481543/

相关文章:

javascript - 我们如何过渡到同一条路线?

javascript - Ember Data 2.1.0 忽略我的 JSON 响应中的 links 属性

javascript - Ember,如何从自定义适配器继承

ember.js - Ember CLI 依赖于 CDN?

javascript - EmberJS 1.6.0 中的查询参数不更新 URL 或触发模型刷新

c# - 如何使用自定义 IHttpModule 和 HttpRequest 过滤器修改 POST 请求?

asp.net - 对于同一 IIS 服务器 ASP.NET 上的 2 个应用程序, session 丢失太快

c# - 将 MVC 1 应用程序部署到远程服务器时 Global.asax 解析器错误

ember-cli - 添加外部 javascript 代码的最佳方法是什么?

ember-data - 如何对 Ember 数据记录进行分组?