在 EmberJS 分发应用程序中直接访问路由时出现错误 404
Posted
技术标签:
【中文标题】在 EmberJS 分发应用程序中直接访问路由时出现错误 404【英文标题】:Error 404 when directly access to a route in EmberJS distribution app 【发布时间】:2016-12-31 07:42:05 【问题描述】:我用 EmberJS 开发了一个 web 应用程序,我想部署在一个真实的服务器上。
当我在 localhost 中使用环境开发和命令 ember s
进行测试时,一切正常,但是当我使用 ember build --environment=production
创建分发包并使用网络服务器(在我的情况下为 python -m SimpleHTTPServer 4200
以及 Apache 服务器)部署它时) 当我尝试直接访问路由时出现以下错误。
Error response
Error code 404.
Message: File not found.
Error code explanation: 404 = Nothing matches the given URI.
如果我输入myaddress:4200
并浏览链接,没有任何问题,但如果我想刷新网页或更改网址,则会发生错误 404。
【问题讨论】:
我不确定它是如何使用 python 完成的,但您需要将所有请求重定向到您的 index.html 文件,并且仅在文件存在时才允许请求通过。 @Kitler 我该怎么做?你用什么来创建你的部署服务器? Python SimpleHTTPServer的可能重复 这不是你说的问题的重复,因为我试图将它部署在 Apache 服务器中并且错误是相同的。路线不存在 Ember/Ember-Cli Serving through Apache throws 404的可能重复 【参考方案1】:在检查问题Python SimpleHTTPServer 和 ember 存储库中的一个问题后,我实施的解决方案是通过 Apache 服务器执行部署并创建一个 .htaccess
文件将流量重定向到 index.html
Options FollowSymLinks
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.html$ - [L]
RewriteCond %REQUEST_FILENAME !-f
RewriteCond %REQUEST_FILENAME !-d
RewriteRule . /index.html [L]
</IfModule>
【讨论】:
请注意,这不适用于 python SimpleHTTPServer,需要 apache。 是的,我忘了包括我通过 Apache 提供服务。谢谢@Kitler!以上是关于在 EmberJS 分发应用程序中直接访问路由时出现错误 404的主要内容,如果未能解决你的问题,请参考以下文章