Нет маршрутов соответствий для изображения в активах / изображениях - PullRequest
1 голос
/ 04 января 2012

У меня есть изображение, которое я только что добавил в / assets / images.Когда я ссылаюсь на это в своем приложении с помощью этого кода:

<%= image_tag("profilewall.png", alt: "The Team", :id => "aboutusright") %>

, я получаю в веб-браузере поврежденное изображение и это на сервере:

ActionController :: RoutingError (НетМаршрут соответствует [GET] "/assets/profilewall.png"):

Я прочитал полное описание конвейера активов в руководствах (http://guides.rubyonrails.org/asset_pipeline.html) и увидел некоторые вещи, которые, как я думал, исправят это, но ничегоЯ попытался запустить

rake assets: precompile

, но это не помогло. Я также попытался изменить

config.assets.compress = false

, строка в файле development.rb, и ничего из этого не сработало. Когда я изменяю имя изображения на другие изображения в папке assets / images, оно работает просто отличноЯ не могу понять это. Я предполагаю, что я упускаю что-то довольно корректирующее в конвейере ресурсов, но в этот момент я перепробовал все, что мог придумать, и ничего не работает. Я перезапустил сервер, перезапустил и терминал, и текстового партнера, нонеудачно,Это сломанное изображение убивает меня!Кроме того, изображение не наследует класс, который я ему говорю (даже когда я нацеливаю его на другое работающее изображение).Поэтому он не отображается с некоторыми изображениями и не распознает его класс, когда работает с другими изображениями.

Сегодня это было довольно серьезным препятствием.Любая помощь будет оценена.Небольшое быстрое объяснение того, когда эти изображения компилируются / когда мне нужно перезапустить материал, также поможет.Это изображение будет статичным изображением на главной странице.Это лучшее место, чтобы поставить его?Я прочитал в руководствах, что «общедоступная» папка может быть лучше, потому что тогда она будет кэшироваться.

Заранее спасибо.

РЕДАКТИРОВАТЬ: Я просто зашел в / public / assets и поместил туда файл, и он работал как шарм.Может кто-нибудь объяснить мне, почему это происходит с конвейером активов?Я сбит с толку (но благодарен, что это работает).

1 Ответ

1 голос
/ 04 января 2012

Возможно, это связано с тем, что вы смешиваете хеш-синтаксис ruby ​​1.9.3 с синтаксисом 1.8 в вызове метода.

Измените помощника на:

<%= image_tag("profilewall.png", :alt => "The Team", :id => "aboutusright") %>

и если это не сработает, отредактируйте вопрос, и я посмотрю его еще.

(Если это обновленное приложение, убедитесь, что все параметры конфигурации совпадают с настройками в последнем разделе руководства по конвейеру.)

Редактировать:

Я предполагаю, что это в режиме разработки?

Если файл обслуживается, когда вы перемещаете его в public / assets / images, это означает, что у вас неправильно настроен параметр конфигурации. При нормальных (по умолчанию) обстоятельствах в режиме разработки, если нет статического ресурса для обслуживания, запрос передается в Sprockets. Из этого видно, что Sprockets не обрабатывает запрос, поэтому должен быть выключен.

Это будет config.assets.compile, и оно истинно по умолчанию (для разработки) и имеет значение false в производстве, при условии, что активы предварительно скомпилированы.

Я предполагаю, что в application.rb или development.rb это значение равно false. Убедитесь, что все настройки соответствуют настройкам в последнем разделе руководства по конвейеру, удалите все файлы в public/assets и tmp/cache/assets/, перезапустите сервер, и он должен работать.

...