Подтвердить что ты не робот

Среда Rails dev не обновляет html/css/активы даже после перезапуска сервера

Я занимаюсь разработкой сайта в рельсах, все идет относительно гладко. Внезапно мои изменения в представлениях и активах больше не появляются. Я меняю таблицу стилей или некоторый html и перезагружаю браузер в http://0.0.0.0:3000, и ничего не меняется. Поэтому я перезапускаю WEBrick и до сих пор ничего не изменил. Это даже в случае, если я полностью изменяю изображение.

Единственный способ получить новые изменения - прекомпилировать активы:

C:\Users\me\website>rake assets:precompile
C:/Ruby193/bin/ruby.exe C:/Ruby193/bin/rake assets:precompile:all RAILS_ENV=production RAILS_GROUPS=assets

Почему он показывает производство как RAILS_ENV? Может быть, моя среда разработки каким-то образом превратилась в производственную среду? Но даже тогда мне не нужно будет перекомпилировать активы, чтобы отразить изменения. В любом случае Rails.env.development? возвращает true и Rails.env.production? возвращает false в контроллерах и файлах erb.

Я попытался удалить каталог /tmp безрезультатно.

Мне пришлось добавить следующую строку в config/application.rb, чтобы заставить Heroku работать с компасом:

config.assets.initialize_on_precompile = false

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

4b9b3361

Ответ 1

Удалить содержимое своего каталога public/assets/. То, что происходит с предварительно скомпилированными файлами, и они обслуживаются, если они существуют, а не запрос, попадающий в Sprockets. Вы можете безопасно просто уничтожить весь каталог, и все должно работать снова.

Ответ 2

Другой способ - переименовать каталог public/assets/в нечто вроде public/assets_hide/. Затем переименуйте его обратно перед запуском "rake assets: precompile" и нажатием на сервер. Это сокращает время прекомпиляции, а также сохраняет права доступа к файлам активов для некоторых драгоценных камней, например богатых, которые копируют активы.

Более простой способ - изменить файл config/environment/development.rb на:

config.serve_static_assets = false

Тогда вам не нужно связываться с общедоступным/ресурсным каталогом. Однако, если вы используете что-то вроде paperclip для загрузки файлов изображений, это не сработает, потому что файлы изображений не будут обслуживаться.

Ответ 3

Вероятно очевидно для всех, но просто хотел добавить, что при удалении или переименовании public/assets/folder вам, вероятно, также потребуется перезапустить локальный сервер и очистить кеш браузера: -)