Причина, по которой вы можете получить доступ к stylesheet.css
в разработке, заключается в том, как работает Sprockets.
В режиме разработки ВСЕ запросы на что-либо в каталоге / assets отправляются Sprockets для обработки.Звездочки будут напрямую сопоставлять запросы с путями, один к одному, поэтому вы можете получить доступ к любым ресурсам, хранящимся в app/assets/etc
.
Все запросы идут от до Звездочки;он подает файлы в ваш браузер.
В производстве все иначе.К именам файлов добавляется отпечаток пальца, и ожидается, что вы прекомпилируете свои активы в статические файлы.Это из соображений производительности - Sprockets недостаточно быстр для обслуживания большого количества запросов.
Только те файлы CSS и JS, на которые ссылаются манифесты по умолчанию, компилируются в application.css и application.js.Другие файлы, на которые вы ссылаетесь, не прекомпилируются, если они не добавлены в массив config.assets.precompile
в вашем файле конфигурации.
Вы говорите, что файлы разрешаются в /stylesheets/stylesheet.css
.В процессе разработки конвейер должен генерировать такой путь: /assets/applicaton.css
.На производстве должен быть отпечатком в имени файла.То, что вы опубликовали, говорит о том, что конвейер не включен (это старые, до 3.1, расположения файлов).
Если это обновленное приложение, скорее всего, вы пропустили какой-то важный параметр конфигурации,Это основная причина проблем с разработкой.Убедитесь, что параметры конвейера установлены точно , как они указаны в последней секции направляющей конвейера.(Я предполагаю, что вы пропускаете config.assets.enabled = true
в application.rb)
И для ясности я бы предложил изменить имя stylesheet.css
на admin.css
, включив его в массив прекомпиляции (как выуже сделал).
Если параметры конфигурации установлены правильно и ваш манифест администратора включен в прекомпиляцию, у вас должен быть доступен файл application.css для внешнего интерфейса и файл admin.css для внутреннего интерфейса, оба могут быть связанычерез вспомогательные методы.