0

我想在资产的子目录中使用html文件在AngularJS中的路径上设置templateUrl。它在当地很好地工作。AngularJS模板Url不工作

模板存储在:#{RAILS_ROOT} /应用/资产/模板

# Sets up routing 
Blog.config(['$routeProvider', ($routeProvider) -> 
# Route for '/post' 
$routeProvider.when('/post', { templateUrl: './assets/mainIndex.html', controller: 'PostCtrl' }) 

# Default 
$routeProvider.otherwise({ templateUrl: './assets/mainIndex.html', controller: 'IndexCtrl' })]) 

我试过利用asset_path,但是这似乎并没有在所有的工作。

+0

使用相对路径... – harishr

+0

确保您的JavaScript文件以erb结尾。 (即main.js.coffee.erb)。 asset_path应该可以工作.. – Randmness

回答

0

尝试资产

$routeProvider.when('/post', { templateUrl: 'assets/mainIndex.html', controller: 'PostCtrl' }) 
0

我们必须同时在同一个AngularJS/Rails的教程之前删除./。我被困在同一部分。

asset_path确实有效。确保您的javascript.coffee文件.erb结束

我的模板在:

app/assets/templates 

在我main.js.coffee.erb(不要忘了.erb),我有templateUrl定义为:

templateUrl: '<%= asset_path('mainIndex.html')%>' 

这在当地有效。不幸的是,它仍然没有在生产工作(我使用OpenShift。)正在以生成预编译的文件,但是,asset_path始终解析

GET /assets/mainIndex.html 

,而不是像(公开/资产。):

GET assets/mainIndex-435fd76973a72d658af47da0fb824bcd.html 

在日志中,我看到引用预编译文件的所有资产GET,但由于某种原因,这个templateUrl isnt。这是我要解决的下一个问题。