Question: I have a rails application, using angularjs for the client side development. I try to load a template located in `app/assets/javascripts/templates/': 

```
myApp.config(['$routeProvider',
  function($routeProvider) {
    $routeProvider.
      when('/', {
        templateUrl: '/index.html',
        controller: 'MainController'
      }).
      otherwise({
        redirectTo: '/'
      });
  }]);

```

but I always get a error: "Error: [$compile:tpload] Failed to load template: /index.html".

I tried to move the "templates" folder out of the javascripts - app/assets/templates and to add it to my assets pipeline load by adding the following line to config/application.rb: `config.assets.paths << Rails.root.join("app","assets","templates")`

I keep getting the same error message until I use the full path to the template: `templateUrl: '/assets/index.html',`.

1. Why the first method is not enough? the angular-rails-templates gem shouldn't look for templates in app/assets/javascripts/templates?
2. Why should I use the full path to an assets inside my javascript?

Answer: 
Practice has shown that you should keep Angular templates in `./public` folder. For example make a folder called templates in the `public` folder. Now you can just call them like this: `templateUrl: 'templates/index.html'`

This makes sense as the `app/assets/` is indeed only used for javascript and css files. Also you have the html files in `app/views`, but these are compiled by server because they use `.erb` extension. What you want is to have regular `html` files ready to be used any time. So you put them to public folder.
I solved this issue by adding "gem 'sprockets'" into the Gemfile