путь рельсов активов - PullRequest
2 голосов
/ 02 августа 2011

У меня есть

  <link href="/assets/application.css" media="screen" rel="stylesheet" type="text/css" /> 
  <script src="/assets/application.js" type="text/javascript"></script> 

, но когда я иду на http://localhost:3000/assets/application.css

Routing Error

No route matches [GET] "/assets/application.css"

PS Rails 3.1.0.rc4, ruby ​​1.8.7

Ответы [ 5 ]

3 голосов
/ 31 августа 2011

Я обнаружил, что после обновления до Rails 3.1 этим вечером у меня происходило нечто подобное. Я работал над проектом, который не использовал ActiveRecord, поэтому я изменил свой application.rb, чтобы исключить его. Строка, которая обычно читает require 'rails/all', чтобы включить только те части, которые мне были нужны, например:

require "action_controller/railtie"
require "action_mailer/railtie"
require "active_resource/railtie"
require "rails/test_unit/railtie"

Этот список был изменен в Rails 3.1 и теперь включает в себя Sprockets, основной компонент, обеспечивающий работу конвейера ресурсов. Я получил конвейер ресурсов, обслуживающий обслуживающий контент, как и ожидалось, добавив эту строку в конец списка:

require "sprockets/railtie"

После перезапуска /assets/application.js и другие активы начали работать как положено.

Примечание: если у вас есть такие настройки, как этот, обязательно откройте гем railties и посмотрите на содержимое lib/rails/all.rb, которое могло измениться (как в этом случае).

3 голосов
/ 13 августа 2011

Кажется, что Sprockets / Rails 3.1 действовали для меня w / ruby ​​1.9.2-p180 ... обновление до Ruby-1.9.2-p290, похоже, остановило проблему.

Возможно, это не связано с вашейпроблема ... но полезна для всех, кто сталкивался с этой проблемой, используя эти версии Rails & Ruby.

1 голос
/ 25 января 2013

Мне пришлось добавить следующую строку в application.rb:

    config.assets.enabled = true

внизу класса Application

1 голос
/ 16 августа 2011

В файле макета приложения, если у вас есть

<%= stylesheet_link_tag "/assets/application" %>

, который дает

No route matches [GET] "/assets/application.css"

TRY, изменяя его на

<%= stylesheet_link_tag "application" %>
1 голос
/ 03 августа 2011

Ваши скрипты и стили будут загружены из общей папки. Перенесите папку ресурсов в публичную папку, и все будет хорошо.

...