Ошибка маршрутизации статических файлов на Rails - PullRequest
16 голосов
/ 08 февраля 2011

Когда я запускаю свое приложение локально в test / dev, мои взгляды появляются хорошо, и все радует.Когда я пытаюсь перейти к тем же файлам erb, работающим на моем удаленном сервере / локальном производственном сервере, я получаю ошибки, подобные следующим:

ActionController::RoutingError (No route matches "/stylesheets/scaffold.css")

Я видел подобные вопросы здесь на SO, но ни один не смогрешить мою проблему.Самое близкое, что я нашел к ответу, это первый ответ здесь: Ошибка Rails 404 для таблиц стилей или файлов JavaScript

Насколько я понимаю, лучше всего было бы настроить мойвеб-сервер для обслуживания статических файлов.Как мне сделать это локально / на Heroku?

Обновление

В соответствии с предложением raidfive я изменил config.serve_static_assets с false на true, и это устранило мою проблему.Тем не менее, я вижу, что в production.rb говорится, что Apache или nginx уже должны обслуживать статические ресурсы.Не менее ли хорошо / профессионально обслуживать статические активы таким образом, и если да, то как бы я достиг желаемых результатов, если использую Heroku?

Обновление 2

Видимо, Heroku делает это автоматически , у меня была лишняя запятая, которая причиняла вред.Мне удалось просмотреть расширенные журналы Heroku, используя следующий совет , чтобы отследить проблему.Спасибо ТАК!

Ответы [ 2 ]

33 голосов
/ 08 февраля 2011

Вы используете Rails 3? По умолчанию Rails 3 / webrick не обслуживает статические файлы в рабочем режиме. Вы можете легко включить это, установив

config.serve_static_assets до true в вашем файле production.rb.

0 голосов
/ 15 декабря 2016

В Rails5 вы должны комментировать

"config.public_file_server.enabled = ENV['RAILS_SERVE_STATIC_FILES'].present?" 

в config/enviroment/production.rb

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...