问题描述
我有一个 rails 应用程序,使用 angularjs 进行客户端开发.我尝试加载位于`app/assets/javascripts/templates/' 中的模板:
I have a rails application, using angularjs for the client side development. I try to load a template located in `app/assets/javascripts/templates/':
myApp.config(['$routeProvider',
function($routeProvider) {
$routeProvider.
when('/', {
templateUrl: '/index.html',
controller: 'MainController'
}).
otherwise({
redirectTo: '/'
});
}]);
但我总是收到错误:错误:[$compile:tpload] 无法加载模板:/index.html".
but I always get a error: "Error: [$compile:tpload] Failed to load template: /index.html".
我尝试将templates"文件夹移出 javascripts - app/assets/templates 并将其添加到我的资产管道加载中,方法是将以下行添加到 config/application.rb:config.assets.路径<
I tried to move the "templates" folder out of the javascripts - app/assets/templates and to add it to my assets pipeline load by adding the following line to config/application.rb: config.assets.paths << Rails.root.join("app","assets","templates")
在使用模板的完整路径之前,我一直收到相同的错误消息:templateUrl: '/assets/index.html',
.
I keep getting the same error message until I use the full path to the template: templateUrl: '/assets/index.html',
.
为什么第一种方法还不够?angular-rails-templates gem 不应该在 app/assets/javascripts/templates 中查找模板?
Why the first method is not enough? the angular-rails-templates gem shouldn't look for templates in app/assets/javascripts/templates?
为什么要在我的 javascript 中使用资产的完整路径?
Why should I use the full path to an assets inside my javascript?
推荐答案
我的问题是 sprockets
不兼容.2.1.3 版可以工作,所以我把它放在我的 Gemfile
中:
My problem has been a sprockets
incompatibility. Version 2.1.3 works though so I put this in my Gemfile
:
gem 'sprockets', '2.12.3'
我运行了bundle update sprockets
,一切都很好.
And I ran bundle update sprockets
and it's all peachy.
这篇关于angular-rails-templates:找不到模板的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!