The solution was pretty obvious after I thought about it. Changing the
code run during deployment from:
ruby script/runner Sass::Plugin.update_stylesheets

to:
ruby script/runner "Sass::Plugin.options = {:always_update => true};
Sass::Plugin.update_stylesheets;"

This should allow me to do the one time forced update I was looking to
do.

On Mar 8, 9:49 am, Ben Fyvie <[email protected]> wrote:
> We encountered a problem recently with our deployments. Some of our
> Sass css files were not being updated. We think this is because our
> deployment copied the Sass files before the CSS files hence giving the
> CSS file a newer timestamp than the Sass file and thus not updating
> the CSS files when calling update_stylesheets. So we set this:
> Sass::Plugin.options = {:always_update => true}
>
> Now during our deployments our CSS files always get updated, which is
> great; however, this seems to have a side effect when the application
> is running. We intermittently get this error:
>     No such file or directory - [top secret path info]/public/
> stylesheets/print.css...
>
>   [RAILS_ROOT]/vendor/gems/haml-2.2.2/lib/sass/plugin.rb:79:in
> `delete'
>
> After looking at the Sass code i can see that you basically call the
> update_stylesheets method whenever calling
> ActionController::Base.process
>
> It seems to me that this may cause a race condition where multiple
> requests try to update the stylesheets at the same time an thus
> causing the file/directory not found error.
>
> Now assuming that all of this is accurate, I am wondering if there is
> any way that we can have our stylesheets always update during a
> deployment, but use the default update functionality while our app is
> running.

-- 
You received this message because you are subscribed to the Google Groups 
"Haml" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to [email protected].
For more options, visit this group at http://groups.google.com/group/haml?hl=en.

Reply via email to