1

作为一个 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)

然后我重新预编译,当我看到我的公共/资产中的文件时,javascripts 仍然无法正常工作,并且某些 CSS 在 Chrome 中无法正常工作。我已经尝试清除浏览器中的所有内容,但仍在尝试 Chrome、Firefox 和 Safari 不起作用。

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

再次感谢。

4

2 回答 2

2

不加载也不自动编译的资产(application.cssjs和application.jscss 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

于 2013-06-12T16:58:42.670 回答
0

您可能应该运行rake assets:precompile以使其在生产中工作。

于 2013-06-12T15:05:05.040 回答