On Dec 29, 2011, at 3:36 PM, Ralph Shnelvar wrote:

> Thursday, December 29, 2011, 12:32:32 PM, you wrote:
> 
> 
> They are not compressed because you have "config.assets.debug = true"
> 
> Kind of strange though that they are in the wrong order. What does your 
> javascript_include_tag look like, and what do the files it's calling look 
> like? 
> 
> 
> 
> Here is part of the relevant code in application.html.haml
> 
> %html{ "xml:lang" => i18n_locale, :lang => i18n_locale, :xmlns => 
> "http://www.w3.org/1999/xhtml"; }
>   %head
>     %title
>       = h(yield(:title) || shnI18n.t("meta title"))
>     %meta{ :name => "Keywords", :content => "UltraDedup, VM, VMWare, 
> deduplication, compression, deduplicate, Deduplicates , backups, backup, back 
> up, free, scripting, video, tutorials, flash" }
>     %meta{ :content => "text/html; charset=UTF-8", "http-equiv" => 
> "Content-Type" }
>     %meta{ "http-equiv" => "X-UA-Compatible", "content" => "IE=edge" }
>     - meta_description_content = h(yield(:meta) || shnI18n.t( "meta 
> description"))
>     %meta{ 'name' => "description", "content" => meta_description_content }
>     - meta_flashMovie = h(yield(:meta_flashMovie) || "")
>     - unless meta_flashMovie.to_s == ""
>       - puts "#{__FILE__} @ #{__LINE__}"
>       - puts meta_flashMovie.class
>       - puts meta_flashMovie
>       <meta #{meta_flashMovie} />
>     = stylesheet_link_tag 'application'
>     - puts "#{__FILE__} @ #{__LINE__}"
>     = javascript_include_tag 'application.js'
>     = javascript_include_tag 'effects.js'
>     = javascript_include_tag 'controls.js'
>     = javascript_include_tag 'jquery.js'
>     = javascript_include_tag 'row0_in__table_in_tableWrap.js'
>     = javascript_include_tag 'shnHelpers.js'
>     = javascript_include_tag 'dotimeout.js'
>     %link{'rel' => "shortcut icon", 'href' => 
> "/images/UltraDedup-icon-003---16x16.ico", 'type' => "image/x-icon"}
>     = yield(:head)
>   %body
> 
> 
> Note that effects.js appears before controls.js in the code above.
> 
> What is doubly strange is tat sound.js and unittest.js was never explicitly 
> included in a javascript_include_tag statement.  I think the assets manager 
> is taking all the .js file it finds and includes them implicitly. 
> 
> 
> 
> To repeat, the rendered html shows controls.js appears before effects.js.
> 
> <script src="/assets/jquery.js?body=1" type="text/javascript"></script>
> <script src="/assets/jquery_ujs.js?body=1" type="text/javascript"></script>
> <script src="/assets/jquery-ui.js?body=1" type="text/javascript"></script>
> <script src="/assets/ZeroClipboard.js?body=1" type="text/javascript"></script>
> <script src="/assets/accordion.js?body=1" type="text/javascript"></script>
> <script src="/assets/build_batches.js?body=1" type="text/javascript"></script>
> 
> <script src="/assets/builder.js?body=1" type="text/javascript"></script>
> <script src="/assets/controls.js?body=1" type="text/javascript"></script>
> <script src="/assets/dragdrop.js?body=1" type="text/javascript"></script>
> <script src="/assets/effects.js?body=1" type="text/javascript"></script>
> <script src="/assets/jquery-scrollTo.js?body=1" 
> type="text/javascript"></script>
> <script src="/assets/jquery-ui-accordion.js?body=1" 
> type="text/javascript"></script>
> 
> <script src="/assets/jrails.js?body=1" type="text/javascript"></script>
> <script src="/assets/prototype.js?body=1" type="text/javascript"></script>
> <script src="/assets/rails.js?body=1" type="text/javascript"></script>
> <script src="/assets/row0_in__table_in_tableWrap.js?body=1" 
> type="text/javascript"></script>
> <script src="/assets/scriptaculous.js?body=1" type="text/javascript"></script>
> <script src="/assets/slider.js?body=1" type="text/javascript"></script>
> 
> <script src="/assets/sound.js?body=1" type="text/javascript"></script>
> <script src="/assets/swfobject.js?body=1" type="text/javascript"></script>
> <script src="/assets/unittest.js?body=1" type="text/javascript"></script>
> <script src="/assets/application.js?body=1" type="text/javascript"></script>
> <script src="/assets/effects.js?body=1" type="text/javascript"></script>
> <script src="/assets/controls.js?body=1" type="text/javascript"></script>
> 
> <script src="/assets/jquery.js?body=1" type="text/javascript"></script>
> <script src="/assets/row0_in__table_in_tableWrap.js?body=1" 
> type="text/javascript"></script>
> <script src="/assets/common/shnHelpers.js?body=1" 
> type="text/javascript"></script>
> <script src="/assets/common/dotimeout.js?body=1" 
> type="text/javascript"></script>
----
I gather that including 'application.js' in your template is what causes all 
the files in app/assets/javascripts to be loaded in alphabetic order - at 
least, that was my conclusion but I think that was with Rails 3.1.1 and now I 
am on 3.1.3 and it seems to do the same... also the css files in 
app/assets/stylesheets which forced me to rename my main css file to zlayout.css

I rather like the ability to have snippets of javascript and css in separate 
files while in development mode as that allows portability but the alphabetic 
loading threw me for a while and I finally figured out that at least the order 
is predictable (which is important with css)

It would seem if you want to manhandle the load order of scripts in assets then 
you probably should not include application.js and include those you 
specifically want in your layout but then you are going to have make manual 
adjustments when it comes to deploying (as opposed to simply executing 'bundle 
exec rake assets:precompile')

Craig

-- 
You received this message because you are subscribed to the Google Groups "Ruby 
on Rails: Talk" 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/rubyonrails-talk?hl=en.

Reply via email to