рельсы пути активов


У меня в

  <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"

P.S. рельсы 3.1.0.rc4, ruby 1.8.7

5 2

5 ответов:

Похоже, что звездочки / рельсы 3.1 действовали на меня с помощью ruby 1.9.2-p180 ... обновление до Ruby-1.9.2-p290, казалось, остановило проблему.

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

Я обнаружил, что у меня было нечто подобное после обновления до 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, чтобы включить звездочки, основной компонент для обеспечения работы конвейера активов. Я получил конвейер активов, обслуживающий содержимое сервировки, Как и ожидалось, добавив эту строку в внизу списка:

require "sprockets/railtie"

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

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

Ваши сценарии и стили будут загружены из общей папки. Поместите папку assets в раздел public, и вы должны быть готовы к работе.

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

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

Который дает

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

Попробуйте изменить его на

<%= stylesheet_link_tag "application" %>

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

    config.assets.enabled = true

В нижней части класса Application