![](/img/trans.png)
[英]Ruby on Rails 3 - Stylesheets and Javascripts on separate domains
[英]Rails: Stylesheets/Javascripts work in Dev, not Prod
作為RoR的新手,我一直在閱讀/嘗試了解資產管道的工作方式,以及在使樣式表/ JavaScript可用於我的應用程序時,資產管道如何影響開發與生產,但是我仍然感到困惑。
在我的應用程序中,我從application.css / .js文件中調用了頻繁使用的CSS / JS文件,然后根據需要顯式調用其他.css / .js文件,例如:
<%= stylesheet_link_tag 'reset.css',"application",'bootstrap.min.css', 'bootstrap-responsive.min.css','font-awesome.css','http://fonts.googleapis.com/css?family=Raleway:400,600,700', 'fancybox.css' %>
<%= javascript_include_tag "application", 'modernizr.js', 'bootstrap.js'%>
這在開發中效果很好,但是一旦我將代碼推入生產環境,顯式調用的.css / .js文件就不再起作用。 如果查看源代碼,則會看到文件已正確調用到頁面中。
為了使這項工作在生產中,我缺少哪些步驟? 感謝您的時間和協助。
更新:根據Martin M的建議,我將.css / .js添加到了config / environments / production.rb中。
例如:
config.assets.precompile += %w(reset.css grepfrut.css jquery-ui.css base-admin.css reports.css signin.css daterangepicker.css bootstrap.min.css bootstrap-responsive.min.css font-awesome.css fancybox.css)
config.assets.precompile += %w(modernizr.js bootstrap.js ddsmoothmenu.js wice_grid.js date.js daterangepicker.js signin.js)
然后,我重新進行了預編譯,當我在公共/資產中看到文件時,javascript仍然無法運行,並且某些CSS在Chrome中不起作用。 我嘗試清除瀏覽器中的所有內容,但仍然嘗試使用Chrome,Firefox和Safari無法正常工作。
不知道它是否值得一提,但是由於我的托管服務提供商,我目前不得不在Ruby 1.8.7-p370中運行它。 稍后,我將轉向更具RoR友好性的提供商。
再次感謝。
沒有由application.css
和application.js
加載的資產(js和css) 不會被rake assets:precompile
自動rake assets:precompile
。
您必須通過在config/environment/production.rb
明確指出來包括它們:
config.assets.precompile += %w(reset.css bootstrap.min.css bootstrap-responsive.min.css font-awesome.css fancybox.css)
config.assets.precompile += %w(modernizr.js bootstrap.js)
生成的production.rb
有一個注釋示例。
這有點令人困惑,因為在development
以任何方式加載資產。
是的,每次更改css / js時,您都必須運行rake assets:precompile
。
您可能應該運行rake assets:precompile
以便使其在生產中工作。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.