Только начал адаптироваться к рельсам 3.1, я начал писать coffeescript и sass, и все отлично работает в разработке. Когда я запускаю сервер в работе, я получаю только:
<link href="/stylesheets/application.css" media="screen" rel="stylesheet" type="text/css" />
<script src="/javascripts/application.js" type="text/javascript"></script>
в исходном коде страницы, хеш-код не генерируется, и оба ресурса имеют ошибки маршрутизации:
Routing Error
No route matches [GET] "/stylesheets/application.css"
В чем причина этого? Я забыл что-то сделать?
настроек в средах / production.rb:
# Settings specified here will take precedence over those in config/application.rb
# Code is not reloaded between requests
config.cache_classes = true
# Full error reports are disabled and caching is turned on
config.consider_all_requests_local = false
config.action_controller.perform_caching = true
# Disable Rails's static asset server (Apache or nginx will already do this)
config.serve_static_assets = false
# Compress JavaScripts and CSS
config.assets.compress = true
# Don't fallback to assets pipeline if a precompiled asset is missed
config.assets.compile = false
# Generate digests for assets URLs
config.assets.digest = true
config.active_support.deprecation = :notify
Большое спасибо.
Добавить дополнительную информацию:
в layouts / application.html.erb я использую следующее для включения ресурсов:
<%= stylesheet_link_tag "application" %>
<%= javascript_include_tag "application" %>
<%= csrf_meta_tags %>
И я попробовал bundle exec rake assets:precompile
, который работает без вывода чего-либо, а затем запустить rails s -e production
, проблема сохраняется.
И я также попытался установить config.assets.compile = true
и затем запустить rails s -e production
, проблема все еще сохраняется.
Пожалуйста, помогите.
Дополнительная информация.
Я видел, что скомпилированные js и css генерируются в папке public / assets, но в рабочей среде файлы включены без хеш-кода.
Помощь.
Решение:
Просто еще раз проверил мой проект и обнаружил, что основная причина - это когда я редактировал application.rb для поддержки mongodb. Я случайно прокомментировал
require "sprockets/railtie"
раскомментируйте, тогда все в порядке.
Оставьте это для других, чтобы напомнить мою ошибку новичка.
Большое спасибо, Ричард. Ваш ответ не окончательный, но он очень помогает, действительно заслуживает голосования.