javascript - Rails : Stylesheets/Javascripts work in Dev, 不是产品

标签 javascript css ruby-on-rails asset-pipeline

作为 RoR 新手,我一直在阅读/试图了解 Assets 管道的工作原理,以及在让我的样式表/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)

然后我重新预编译,当我在我的 public/assets 中看到这些文件时,javascripts 仍然无法工作,并且一些 CSS 在 Chrome 中无法工作。我已尝试清除浏览器中的所有内容,但 Chrome、Firefox 和 Safari 仍然无法正常工作。

不确定它是否值得一提,但由于我的托管服务提供商,我目前被迫在 Ruby 1.8.7-p370 中运行它。稍后我将转向对 RoR 更友好的提供商。

再次感谢。

最佳答案

application.cssapplication.js 未加载的资源(js 和 css)不会 自动编译抽取 Assets :预编译

您必须通过在 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中有注释示例。

这有点令人困惑,因为在开发中, Assets 可以任何方式加载。
是的,每次更改 css/js 时都必须运行 rake assets:precompile

关于javascript - Rails : Stylesheets/Javascripts work in Dev, 不是产品,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17068848/

相关文章:

javascript - 基于复选框状态的条件数学

javascript - Z-Index CSS - 顶部导航与垂直导航重叠

asp.net - 主题与 ASP.NET 中的 CSS 相比有何优势?

javascript - 在滚动条上淡入另一个标志

ruby-on-rails - 在优胜美地安装 Nokogiri

ruby-on-rails - 我是否需要将所有内容都放在 sidekiq 的 app/workers 中?

javascript - 如何避免巨大的嵌套 if else

javascript - JSON.stringify() 的使用有什么区别?

html - 最大化页面时我页面上的布局发生变化,这是如何停止的?

ruby-on-rails - 太阳黑子索引和搜索标签返回一切