Ruby on rails 角度轨道模板:找不到模板

Ruby on rails 角度轨道模板:找不到模板,ruby-on-rails,angularjs,angular-routing,ngroute,angularjs-templates,Ruby On Rails,Angularjs,Angular Routing,Ngroute,Angularjs Templates,我有一个rails应用程序,使用angularjs进行客户端开发。我尝试加载位于“app/assets/javascripts/templates/”中的模板: myApp.config(['$routeProvider', function($routeProvider) { $routeProvider. when('/', { templateUrl: '/index.html', controller: 'MainControlle

我有一个rails应用程序,使用angularjs进行客户端开发。我尝试加载位于“app/assets/javascripts/templates/”中的模板:

myApp.config(['$routeProvider',
  function($routeProvider) {
    $routeProvider.
      when('/', {
        templateUrl: '/index.html',
        controller: 'MainController'
      }).
      otherwise({
        redirectTo: '/'
      });
  }]);
但我总是得到一个错误:“错误:[$compile:tpload]加载模板失败:/index.html”


我试图将“templates”文件夹从javascripts-app/assets/templates中移出,并通过在config/application.rb中添加以下行将其添加到我的资产管道加载中:
config.assets.paths尝试一下,我希望这能奏效

 myApp.config(function ($routeProvider) {
  $routeProvider.
    when('/', {
     templateUrl: '/index.html',
     controller: 'MainController'
    }).
    otherwise({
     redirectTo: '/'
   });
});

实践表明,应将角度模板保存在
/public
文件夹中。例如,在
public
文件夹中创建一个名为templates的文件夹。现在您可以这样调用它们:
templateUrl:'templates/index.html'


这是有道理的,因为
app/assets/
实际上只用于javascript和css文件。您在
app/views
中也有html文件,但这些文件是由服务器编译的,因为它们使用
.erb
扩展名。您想要的是让常规的
html
文件随时可用。所以你把它们放到了公用文件夹。

我的问题是链轮不兼容。但是2.1.3版可以正常工作,所以我把它放在我的
Gemfile

gem 'sprockets', '2.12.3'

我运行了
bundle update sprockets
,一切都很好。

我通过添加“gem'sprockets'解决了这个问题”在gem文件中

我看到了这一点,但我不明白如果是这种情况,为什么会存在
angular rails模板
gem。因为有些人觉得需要打破这种模式,将html部分保存在javascript文件夹中。对于较小的应用程序,这不应该是一个很大的问题。当事情变得更大时,最好将它们保存在公用文件夹中。另一个原因是有些人希望使用html预处理器,如
haml
slim
,来处理视图。如果将视图放在
/public
中,则不能使用预处理器。在
应用程序.js
中是否有
/=require\u tree./templates
?是的,它显示“GET 404(Not Found)”,因此我猜它不会在templates文件夹中查找。在我执行上述操作之前,这正是我的问题。你重启服务器了吗?值得注意的是,当我努力解决这个问题时,很多人建议不要使用rails资产管道,而只是将模板放入
/public/templates
或类似的东西中。你同意放弃资产的这种方法吗?