angular-rails-模板加载模板失败
angular-rails-templates Failed to load template
我正在尝试让 Angular 加载模板:
var app = angular.module("myApp", ['templates'])
和我的 html:
<div ng-app="myApp">
<div ng-include="'blah.html'"></div>
</div>
但我得到的只是 404
Failed to load resource
因为 Rails 告诉我 No route matches [GET] "/blah.html"
。据我了解,这是因为 Rails 中的资产管道。 blah.html
在 /app/assets/javascripts/templates/blah.html
中,我正在使用 angular-rails-templates
gem 来尝试解决问题。所以我的 application.js
有:
//= require angular-rails-templates
//= require_tree ./templates
但是我运气不好。
生成的 html 表明 angular-rails-templates
正在加载(它有一个脚本 /assets/angular-rails-templates....js
)但是 rails 找不到 blah.html
Versions:
rails 4.2.1
angular-rails-templates 0.1.4
angularjs 1.3.15
我将 angular 模板文件放在 public/templates
下,无需任何额外配置即可通过 <site root>/templates
访问。
我今天一直在为同样的问题苦苦挣扎,我想我已经找到了解决这个问题的方法。
尝试
<div ng-include="'assets/blah.html'"></div>
或
<div ng-include="'assets/templates/blah.html'"></div>
而不是
<div ng-include="'blah.html'"></div>
这解决了我的问题。
这原来是链轮不兼容(参见 and here)
简短版本是:
- 将
gem 'sprockets', '2.12.3'
添加到您的 Gemfile
- 运行
bundle update sprockets
[更新]
我不是这方面的专家,但确实有很多人比我建议的使用 /public/templates
更聪明。您可能需要牢记这一点。
我遇到了类似的问题 - 匆忙中,我忽略了完整阅读说明,因此错过了 step 3。
在 Angular 应用程序模块中添加依赖项为我解决了这个问题,模板通过资产管道提供...
//= require angular-rails-templates
//= require_tree .
angular.module('d-angular', ['templates'])
经过一个小时的努力才得到这个,我意识到我有一个 JavaScript 共享相同名称的文件。
例如,这些文件会引起冲突:
component.js
component.html.haml
所以我确保将 JavaScript 文件重命名为:
component-directive.js
component.html.haml
我正在尝试让 Angular 加载模板:
var app = angular.module("myApp", ['templates'])
和我的 html:
<div ng-app="myApp">
<div ng-include="'blah.html'"></div>
</div>
但我得到的只是 404
Failed to load resource
因为 Rails 告诉我 No route matches [GET] "/blah.html"
。据我了解,这是因为 Rails 中的资产管道。 blah.html
在 /app/assets/javascripts/templates/blah.html
中,我正在使用 angular-rails-templates
gem 来尝试解决问题。所以我的 application.js
有:
//= require angular-rails-templates
//= require_tree ./templates
但是我运气不好。
生成的 html 表明 angular-rails-templates
正在加载(它有一个脚本 /assets/angular-rails-templates....js
)但是 rails 找不到 blah.html
Versions:
rails 4.2.1
angular-rails-templates 0.1.4
angularjs 1.3.15
我将 angular 模板文件放在 public/templates
下,无需任何额外配置即可通过 <site root>/templates
访问。
我今天一直在为同样的问题苦苦挣扎,我想我已经找到了解决这个问题的方法。
尝试
<div ng-include="'assets/blah.html'"></div>
或
<div ng-include="'assets/templates/blah.html'"></div>
而不是
<div ng-include="'blah.html'"></div>
这解决了我的问题。
这原来是链轮不兼容(参见
简短版本是:
- 将
gem 'sprockets', '2.12.3'
添加到您的 Gemfile - 运行
bundle update sprockets
[更新]
我不是这方面的专家,但确实有很多人比我建议的使用 /public/templates
更聪明。您可能需要牢记这一点。
我遇到了类似的问题 - 匆忙中,我忽略了完整阅读说明,因此错过了 step 3。
在 Angular 应用程序模块中添加依赖项为我解决了这个问题,模板通过资产管道提供...
//= require angular-rails-templates
//= require_tree .
angular.module('d-angular', ['templates'])
经过一个小时的努力才得到这个,我意识到我有一个 JavaScript 共享相同名称的文件。
例如,这些文件会引起冲突:
component.js
component.html.haml
所以我确保将 JavaScript 文件重命名为:
component-directive.js
component.html.haml