我已经关注HTML5Mode上的所有github问题,打破1.5中的Angular应用程序。我遇到了同样的问题,但没有一个修复程序对我有用。
我正在做以下事情:
<base href="/">
和
get '/*path', :to => "menus#index"
和
app.config(function($routeProvider, $locationProvider) {
$locationProvider.html5Mode(true);
.when("/users/:u_id/restaurants/:r_id/menus/:m_id/edit", { templateUrl: "/assets/menus/edit.html", controller: "MenuSectionCtrl" })
.when("/users/:u_id/restaurants/:r_id/menus/:m_id/sections/:sec_id/items", { templateUrl: "/assets/menus/items.html", controller: "MenuItemCtrl" })
.when("/users/:u_id/restaurants/:r_id/menus/:m_id/sections/:sec_id/items/:i_id/option_sections", { templateUrl: "/assets/menus/option_sections.html", controller: "MenuOptionSectionCtrl" })
.when("/users/:u_id/restaurants/:r_id/menus/:m_id/sections/:sec_id/items/:i_id/option_sections/:op_sec_id/options", { templateUrl: "/assets/menus/options.html", controller: "MenuOptionCtrl" })
});
我迷失了下一步该做什么。我尝试过各种路线和基地[href]的组合。
有人有什么想法吗?
另外,我也遵循了本教程。 http://omarriott.com/aux/angularjs-html5-routing-rails/
答案 0 :(得分:3)
试试此链接 http://start.jcolemorrison.com/angularjs-rails-4-1-and-ui-router-tutorial/
如果您只安装了单个angularjs应用程序,那么它非常直接。您需要在routes.rb
中创建此条目get '*path' => 'application#index'
在你的application.controller中更改索引方法如下
def index
render layout: 'application'
end
答案 1 :(得分:0)
以下链接帮助我使用rack-rewrite
get,这似乎对我有用。 Here是链接。只有config.ru
中的以下代码才允许/api
路由到rails:
# config.ru
# This file is used by Rack-based servers to start the application.
use Rack::Rewrite do
rewrite %r{^(?!.*(api|\.)).*$}, '/index.html'
end
require ::File.expand_path('../config/environment', __FILE__)
run Rails.application
答案 2 :(得分:0)
我设法让我的工作:
get '*path', to: redirect('/#/%{path}')
我买的模板在第一次加载后没有哈希工作,但如果刷新页面则不起作用。我尝试手动添加像/#/页面这样的哈希,上面的路由会自动添加。