预编译轨道AngularJS资产
我正在尝试使用RAILS_ENV = production bundle exec rake assets:precompile来编译我的Rails应用程序资产,但这不会编译我的AngularJS资产,所以我的控制台报告如下:
ActionController::RoutingError (No route matches [GET] "/assets/app/views/products/index.html"):
我的AngularJS资产位于“/ assets / app /”下,因此我试图通过将以下内容添加到我的production.rb中来编译角度文件夹,但仍然无法正常工作。
config.assets.precompile += %w(app/* bootstrap/* datatable/* ....
我可以在这个路径下找到编译的索引文件:
public/assets/app/views/products/index-2429bd0f8fc0762dcc075e51f0306c5b.html
任何想法?
UPDATE
在生产环境中也尝试了config.serve_static_assets = false,但它会导致更多缺少资产错误
谢谢
我已经在我的应用程序中通过使用常量来获取路径结构。
我的角度应用程序是旅程(你的显然是不同的)
所以我将角度应用程序声明为模块
this.journey = angular.module('journey', [
'ngResource',
'ngRoute'
]);
然后我有一个名为constants.js.erb
的文件,我声明了我的模板
journey.constant('INDEX_TEMPLATE', '<%= asset_path('journeys/journey_index.html')%>');
journey.constant('EDIT_JOURNEY_TEMPLATE', '<%= asset_path('journeys/journey_edit.html') %>');
最后在我的服务中,我使用声明为模板url的常量
journey.config([
'$routeProvider',
'$locationProvider',
'INDEX_TEMPLATE',
'EDIT_JOURNEY_TEMPLATE',
function ($routeProvider, $locationProvider, INDEX_TEMPLATE, EDIT_JOURNEY_TEMPLATE) {
$locationProvider.html5Mode(false);
return $routeProvider.when('/', {
templateUrl: INDEX_TEMPLATE,
controller: 'JourneyIndexController'
})
}
])
这样我就不必担心文件的位置或者轨道如何组织路由。
希望这可以帮助
链接地址: http://www.djcxy.com/p/79995.html