読者です 読者をやめる 読者になる 読者になる

牌語備忘録 -pygo

あくまでもメモです。なるべくオフィシャルの情報を参照してください。

牌語備忘録 -pygo

AngularJS + Rails で assets ディレクトリ以下に html ファイルを入れて $routeProvider あたりの templateUrl に指定した時エラー出る件

Javascript Rails AngularJS

問題

assets に html ファイル置く

  • app/assets/templates/hoge.html

Angular のコード書く(例:下記一部抜粋)

'use strict';

angular.module('hogeapp', ['sql']).
  config(function($routeProvider) {
    $routeProvider.
      when('/', {controller: TodoCtrl, templateUrl: '<%= asset_path "hoge.html" %>'}).
      otherwise({redirectTo:'/'});
  });

webブラウザでアクセスしても何も画面表示されない。

確認してみる

試しに http://localhost:3000/assets/hoge.html にアクセスしてみる

No route matches [GET] "/assets
ちなみに

「/app/assets/YYY/XXX」に置いたファイルは、「http://localhost:3000/assets/XXX」でアクセスが可能

アセットパイプライン(Asset Pipeline) - Railsドキュメント

解決策

開発環境の場合

config/environment/development.rb
:
  # config.assets.compress = false
  config.assets.compress = true
:

restart rails server

ブラウザで確認。
表示された。オケ。