2011-12-13 3 views
0

Я работаю над приложением rails 3 и пытаюсь развернуть его в производственной среде. Я использую capistrano для развертывания моего приложения и настроил его для предварительной компиляции активов после задачи update_code.Предварительная компиляция Rails 3.1

Все, что хорошо работает при развертывании приложения. Соблюдая журналы производства на сервер я вижу это:

Compiled application.js (6ms) (pid 7552) 
Compiled jquery.js (4ms) (pid 7552) 
Compiled jquery_ujs.js (0ms) (pid 7552) 
Compiled home.js (94ms) (pid 7552) 
Compiled libs/dd_belatedpng.js (0ms) (pid 7552) 
Compiled libs/modernizr-1.7.min.js (0ms) (pid 7552) 
Compiled plugins.js (0ms) (pid 7552) 
Compiled script.js (0ms) (pid 7552) 
Compiled user_sessions.js (93ms) (pid 7552) 
Compiled users.js (92ms) (pid 7552) 
Compiled application.css (3ms) (pid 7552) 
Compiled handheld.css (0ms) (pid 7552) 
Compiled home.css (55ms) (pid 7552) 
Compiled style.css (0ms) (pid 7552) 
Compiled user_sessions.css (1ms) (pid 7552) 
Compiled users.css (0ms) (pid 7552) 
Compiled application.js (6ms) (pid 7541) 
Compiled jquery.js (4ms) (pid 7541) 
Compiled jquery_ujs.js (0ms) (pid 7541) 
Compiled home.js (95ms) (pid 7541) 
Compiled libs/dd_belatedpng.js (0ms) (pid 7541) 
Compiled libs/modernizr-1.7.min.js (0ms) (pid 7541) 
Compiled plugins.js (0ms) (pid 7541) 
Compiled script.js (0ms) (pid 7541) 
Compiled user_sessions.js (93ms) (pid 7541) 
Compiled users.js (94ms) (pid 7541) 
Compiled application.css (2ms) (pid 7541) 
Compiled handheld.css (0ms) (pid 7541) 
Compiled home.css (1ms) (pid 7541) 
Compiled style.css (0ms) (pid 7541) 
Compiled user_sessions.css (0ms) (pid 7541) 
Compiled users.css (0ms) (pid 7541) 

Но если я пытаюсь отобразить главную страницу в браузере, я получаю это:

ActionView::Template::Error (style.css isn't precompiled): 
    14: 
    15:  %link{:rel => "shortcut icon", :href => "/favicon.ico" } 
    16:  %link{:rel => "apple-touch-icon", :href => "/apple-touch-icon.png"} 
    17:  = stylesheet_link_tag "style" 
    18:  = javascript_include_tag "libs/modernizr-1.7.min" 
    19:  = javascript_include_tag "application" 
    20: 
    app/views/layouts/application.html.haml:17:in   `_app_views_layouts_application_html_haml__1713356285_69878424198520' 

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

Кто-нибудь сталкивался с такой проблемой?

Благодарим за помощь.

+0

ли вы 'restart' сервер приложений? –

+0

Привет, господин Nizzle, я попробовал несколько раз, чтобы перезапустить apache после завершения обновления. У меня также есть эта задача после предварительной компиляции - после «активов: предварительная компиляция», «пассажир: перезагрузка» - что делает touch tmp/restart.txt – Elendir

ответ

1

Одно из решений сказать производственную среду не для проверки скомпилированных в config/environments/production.rb и установить линию:

config.assets.compile = false 

к

config.assets.compile = true 

Перезагрузите сервер, а затем вы должны проверить где HALM ищет style.css, который должен быть assets/style.css


UPDATE

Вот еще один вариант

Назови свою config/environments/production.rb компилировать, что именно файл, чтобы убедиться, что он составляется.

config.assets.precompile += %w(style.css)

пила это на https://stackoverflow.com/a/7541958/295228

+0

Я закончил это, но услышал, что это повлияет на производительность из-за " по требованию ". И в этом случае, я полагаю, прекомпиляция бесполезна. В любом случае, спасибо за ваш ответ. – Elendir

+0

Да, это путается с производительностью, но теперь вы можете проверить, где HALM ищет таблицу стилей, я мало знаю о HALM, может быть, HAML не знает об активах ... насколько я искал сейчас это может быть HAML, не работающий с активами, которые вы можете попробовать использовать '.html.erb' вместо' <% = stylesheet_link_tag 'style'%> '. –

+1

Я определенно предпочитаю использовать haml. Поскольку я разрабатываю прототип, производительность не самая важная. Я буду искать поддержку haml rails 3 и возвращаться, если найду что-то интересное. Спасибо за ваше время Mr Nizzle – Elendir

Смежные вопросы