簡體   English   中英

Rails:樣式表/ Javascript可在Dev中工作,而不能在Prod中工作

[英]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.cssapplication.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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM