0

I'm working on a rails 3 app and trying to deploy it on a production environment. I'm using capistrano to deploy my app and configured it to precompile the assets after the update_code task.

The thing is everything works fine when I deploy the app. By following the server production logs I see this :

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)

But if I try to display the main page in a browser, I get this :

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'

I just can't understand how the server is able to tell me the assets are compiled and just after it tells me that, actually, the files aren't compiled.

Does anyone encountered this kind of problem ?

Thanks for your help.

Elendir
  • 203
  • 5
  • 16
  • Did you `restart` the application server? – Mr_Nizzle Dec 13 '11 at 21:53
  • Hi Mr Nizzle, I tried several time to restart apache after the update is done. I also have this task after the precompilation one - after "assets:precompile", "passenger:restart" - which does a touch tmp/restart.txt – Elendir Dec 14 '11 at 10:13

1 Answers1

1

One solution is to tell the production environment not to check for pre-compiled in the config/environments/production.rb and set the line:

config.assets.compile = false

to

config.assets.compile = true

Restart your server and then you should check where HALM is looking for the style.css which should be assets/style.css


UPDATE

Here's another option

Tell your config/environments/production.rb to compile that exactly file to make sure It's being compiled.

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

Saw this on https://stackoverflow.com/a/7541958/295228

Community
  • 1
  • 1
Mr_Nizzle
  • 6,644
  • 12
  • 55
  • 85
  • I ended up by doing this, but heard this would impact performances because of the "on demand" compilation. And in this case, I suppose the precompilation is useless. Anyway, thanks for your answer. – Elendir Dec 16 '11 at 11:42
  • Yes this messes up with performance but now you can check where HALM is searching for the stylesheet, I don't know much about HALM, Might be HAML doesn't know about the assets ... as far as I've searched now it might be HAML not working with the assets you might try using an `.html.erb` an use `<%= stylesheet_link_tag 'style' %>` instead. – Mr_Nizzle Dec 16 '11 at 14:39
  • 1
    I definitely prefer using haml. As I'm developing a prototype, performance is not the most important. I'll look for haml rails 3 asset support and come back if I find something interesting. Thanks for your time Mr Nizzle – Elendir Dec 19 '11 at 19:16