angular-rails-模板:找不到模板
angular-rails-templates: templates are not found
我有一个 rails 应用程序,使用 angularjs 进行客户端开发。我尝试加载位于“app/assets/javascripts/templates/”的模板:
myApp.config(['$routeProvider',
function($routeProvider) {
$routeProvider.
when('/', {
templateUrl: '/index.html',
controller: 'MainController'
}).
otherwise({
redirectTo: '/'
});
}]);
但我总是得到一个错误:"Error: [$compile:tpload] Failed to load template: /index.html"。
我试图将 "templates" 文件夹移出 javascripts - app/assets/templates 并通过将以下行添加到 config/application 将其添加到我的资产管道加载中].rb: config.assets.paths << Rails.root.join("app","assets","templates")
在使用模板的完整路径之前,我一直收到相同的错误消息:templateUrl: '/assets/index.html',
。
为什么第一种方法不行? angular-rails-模板 gem 不应在 app/assets/javascripts/templates?
中查找模板
为什么我应该使用 javascript 中资产的完整路径?
试试这个,我希望它能奏效。
myApp.config(function ($routeProvider) {
$routeProvider.
when('/', {
templateUrl: '/index.html',
controller: 'MainController'
}).
otherwise({
redirectTo: '/'
});
});
实践表明,您应该将 Angular 个模板保存在 ./public
文件夹中。例如,在 public
文件夹中创建一个名为 templates 的文件夹。现在您可以这样称呼它们:templateUrl: 'templates/index.html'
这是有道理的,因为 app/assets/
确实只用于 javascript 和 css 文件。在 app/views
中还有 html 文件,但这些文件是由服务器编译的,因为它们使用 .erb
扩展名。您想要的是准备好随时可以使用的常规 html
文件。所以你把它们放到 public 文件夹。
我的问题是 sprockets
不兼容。版本 2.1.3 可以工作,所以我把它放在我的 Gemfile
:
gem 'sprockets', '2.12.3'
我 运行 bundle update sprockets
都是桃色的。
我通过将 "gem 'sprockets'" 添加到 Gemfile
中解决了这个问题
我有一个 rails 应用程序,使用 angularjs 进行客户端开发。我尝试加载位于“app/assets/javascripts/templates/”的模板:
myApp.config(['$routeProvider',
function($routeProvider) {
$routeProvider.
when('/', {
templateUrl: '/index.html',
controller: 'MainController'
}).
otherwise({
redirectTo: '/'
});
}]);
但我总是得到一个错误:"Error: [$compile:tpload] Failed to load template: /index.html"。
我试图将 "templates" 文件夹移出 javascripts - app/assets/templates 并通过将以下行添加到 config/application 将其添加到我的资产管道加载中].rb: config.assets.paths << Rails.root.join("app","assets","templates")
在使用模板的完整路径之前,我一直收到相同的错误消息:templateUrl: '/assets/index.html',
。
为什么第一种方法不行? angular-rails-模板 gem 不应在 app/assets/javascripts/templates?
中查找模板
为什么我应该使用 javascript 中资产的完整路径?
试试这个,我希望它能奏效。
myApp.config(function ($routeProvider) {
$routeProvider.
when('/', {
templateUrl: '/index.html',
controller: 'MainController'
}).
otherwise({
redirectTo: '/'
});
});
实践表明,您应该将 Angular 个模板保存在 ./public
文件夹中。例如,在 public
文件夹中创建一个名为 templates 的文件夹。现在您可以这样称呼它们:templateUrl: 'templates/index.html'
这是有道理的,因为 app/assets/
确实只用于 javascript 和 css 文件。在 app/views
中还有 html 文件,但这些文件是由服务器编译的,因为它们使用 .erb
扩展名。您想要的是准备好随时可以使用的常规 html
文件。所以你把它们放到 public 文件夹。
我的问题是 sprockets
不兼容。版本 2.1.3 可以工作,所以我把它放在我的 Gemfile
:
gem 'sprockets', '2.12.3'
我 运行 bundle update sprockets
都是桃色的。
我通过将 "gem 'sprockets'" 添加到 Gemfile
中解决了这个问题