asset: прекомпиляция для файлов .js? рельсы 3.1 - PullRequest
3 голосов
/ 19 февраля 2012

Вопрос:

Как получить конвейер ресурсов для обработки всех ваших файлов .js? (я хочу, чтобы они обслуживались по отдельности, а не включались в приложение.js)

Я получаю тонну 404-х файлов javascript, на которые пытаются ссылаться мои страницы:

GET http://<myStagingServer>.heroku.com/assets/<javascriptFilename1_MD5fingerprint> 404 (Not Found)
GET http://<myStagingServer>.heroku.com/assets/<SubDir>/<javascriptFilename2_MD5fingerprint> 404 (Not Found)

Я пытался добавить это к config/application.rb:

config.assets.precompile << '*.js'

Но, насколько я могу судить, это ничего не дало.

Справочная информация:

Я обновляю Rails 3.0 до 3.1 и включаю конвейер активов.

Основные характеристики на данный момент:

  • Переключение на стек кедров Heroku из Bamboo: heroku create --stack cedar.
  • Переключение на «тонкий» в качестве рабочего сервера, что решало различные проблемы: gem 'thin'.
  • Перемещение моих активов с public/assets на app/assets, обновление ссылок в коде для использования stylesheet_link_tag и javascript_include_tag.(Кроме того, что бы я ни делал для изображений - они работают.)
  • Удаление параметров конфигурации x_sendfile_header, потому что Heroku не поддерживает его .

Соответствующие файлы:

//  
// application.js  
//  
//= require_self  
//  

Ответы [ 2 ]

4 голосов
/ 25 февраля 2012

OMG: Я нашел проблему:

javascript и таблицы стилей с периодами в именах требуют явные расширения

Например:

# WORKS
javascript_include_tag "application"
stylesheet_link_tag "application"

# BROKEN
javascript_include_tag "jueryui.custom"
stylesheet_link_tag "jueryui.custom"

# WORKS
javascript_include_tag "jueryui.custom.js"
stylesheet_link_tag "jueryui.custom.css"

Думаю, я понимаю, почему это так, но я думаю, что это не очень хорошо задокументировано ни в одном из учебников по конвейеру ресурсов. Общеизвестно, что у вас не должно быть точек в именах ваших активов?

0 голосов
/ 19 февраля 2012

Я думаю, вам нужно следующее в application.js и application.css:

// = require_tree.

Это загружает все файлы в каталоге ресурсов для CSS и JS.

Также для обновления до 3.1 и информации о конвейере активов:

http://railscasts.com/episodes?utf8=✓&search=Asset+pipeline

Также: Использование конвейера ресурсов Rails 3.1 для условного использования определенных CSS

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