我想让Rails服务器加载Angular 2应用程序,因此我不必运行2台服务器。
作为Angular 2的起点,我使用了以下示例:https://github.com/angular-class/angular2-webpack-starter
如果我运行Rails服务器并提供索引页面,Angular 2应用程序将按预期加载。还有一些链接Home,Dashboard和Todo。点击后它们都可以正常工作。
如果我直接拨打http://localhost:3000:/todo
,我会收到路由错误。所以,为了解决这个问题,我在rails路由器中有以下内容:
get ':todo', controller: :home, action: :index
这会加载应用,但不会将我带到&#t; todo'零件。
现在,如果我使用webpack-dev-server运行Angular 2应用程序(根据repo的说明),这个问题并不存在。
似乎webpack-dev-server能够将所有请求重定向到/以这种方式允许Angular 2的路由接管并将用户引导到正确的组件。
感谢任何帮助。
答案 0 :(得分:0)
事实证明,当我使用相同的代码测试两台服务器时,我为每台服务器都有一个单独的索引文件。
Rails服务器索引文件缺少以下行:
<base href="/">
添加后问题解决了。