【问题标题】:URL rewriting - Ember Routes to URL On Apache Tomcat?URL 重写 - Ember 路由到 Apache Tomcat 上的 URL?
【发布时间】:2020-09-03 02:48:35
【问题描述】:

我已在 Apache Tomcat 版本 9 中部署了我的 ember 应用程序。

索引页运行良好localhost:8080/myemberapp/ 但是当我尝试访问localhost:8080/myemberapp/login 时,它会返回404 error

我还阅读了有关 URL 重写的内容并将以下代码 sn-p 添加到 .htaccess 文件中

#html5 pushstate (history) support:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteRule ^index\.html$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule (.*) index.html [L]
</IfModule>

并将以下内容添加到 tomcat conf/context.xml 文件中

&lt;Valve className="org.apache.catalina.valves.rewrite.RewriteValve" /&gt;

但在 Apache Tomcat 中部署后,我仍然无法访问任何其他 ember 路由。

任何人都可以解决这个问题,以便 ember 应用程序中的每个路由都可以映射到自定义 URL。

【问题讨论】:

  • “它不起作用”不足以提供答案。请参阅stackoverflow.com/help/how-to-ask 并使用适当的信息编辑您的问题,否则您可能会被关闭
  • 你见过this吗?基本上,您的服务器必须始终返回 index.html200 OK 而不是您的 404 页面,因此当找不到路径时,它应该回退到 index.html
  • 是的,我已经看到了,实际上在 .htaccess 文件中放置代码后,它只显示索引页面,但是当我尝试在 ember 应用程序中使用任何其他路由时,返回 404 错误。跨度>
  • @OlafKock 我听取了您的建议并添加了更多信息,请帮我解决这个问题。

标签: tomcat ember.js web-applications


【解决方案1】:

当我在 Github GH 页面中部署我的 ember 应用程序时,我遇到了这个问题。 这里的问题是当您访问 localhost:8080/myemberapp/login 路由时,您的服务器会在登录路由或 login.html 文件中查找 index.html。

所以为了克服这个问题,您需要提及myemberapp 之后的所有路由都是virtual routes,为了提及您需要将locationType 属性的值更改为hash config/environment.js 您的 Ember 应用程序的文件 Ex

locationType 属性的值为hash 时,# 符号将插入到您的应用程序的网址中,因此您的应用程序的网址将更改为localhost:8080/myemberapp#/login Refernce

Example Ember app's repo,您可以查看该应用程序here

【讨论】:

    猜你喜欢
    • 2019-02-24
    • 2010-09-10
    • 2013-09-05
    • 2013-01-23
    • 2013-01-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多