Javascript Rails:样式表/Java脚本在Dev中工作,而不是在Prod中

Javascript Rails:样式表/Java脚本在Dev中工作,而不是在Prod中,javascript,css,ruby-on-rails,asset-pipeline,Javascript,Css,Ruby On Rails,Asset Pipeline,作为一名RoR新手,我一直在阅读/试图了解资产管道是如何工作的,以及当我的应用程序可以使用我的样式表/Java脚本时,它是如何影响开发和生产的,但我仍然感到困惑 在我的应用程序中,我从我的应用程序.CSS/.JS文件中调用常用的CSS/JS文件,然后根据需要显式调用其他.CSS/.JS文件,例如: <%= stylesheet_link_tag 'reset.css',"application",'bootstrap.min.css', 'bootstrap-responsive.min.

作为一名RoR新手,我一直在阅读/试图了解资产管道是如何工作的,以及当我的应用程序可以使用我的样式表/Java脚本时,它是如何影响开发和生产的,但我仍然感到困惑

在我的应用程序中,我从我的应用程序.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'%>
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更友好的提供商


再次感谢。

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

未由
application.css
application.js
加载的资产(js和css)由
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
中有一个注释示例

这有点混乱,因为在
开发中
以任何方式加载资产。

是的,每次在css/js中更改一点时,您都必须运行
rake-assets:precompile

问这个问题可能很愚蠢,但您以前是否运行过
rake-assets:precompile
?我是否每次在生产中都需要这样做?例如,当我编辑/add.css/.js时,我只是在生产环境中运行它。一些样式现在显示正确,但我的Java脚本仍然缺失。您是在本地还是在生产服务器上预编译了它?预编译任务在public/中创建一个“assets”目录。如果您在本地执行此操作,则可能会与app/assets目录发生冲突。主要是在生产服务器上进行预编译更好。我删除了生产中的资产目录并重新运行了预编译。我仍然缺少.js文件(和一些.css)。例如,如果我查看source,我会看到:/assets/daterangepicker-0cf08ceb2e42a13375d1e217fa200b69.js,但此文件不是公开的/assetsThank。请看我的更新上面,让我知道我还可以做什么。非常感谢。您是否在Fireforx/firebug、Chrome等的JavaScript控制台中看到任何错误?同时检查firebug的网络面板。我查看了本地和生产中的firebug网络。prod调用中缺少了一些.js文件,但这些文件通常是通过gems添加的。我也需要显式地添加它们吗?谢谢。我尝试过显式地添加其中一些(例如:jquery-1.9.1.min),但没有成功。它也在我的application.js文件中,但仍然无法通过firebugOk显示。.我可以通过在我的production.rb中添加config.assets.compress=false,使.js文件显示在Firebug(网络)中,但这些文件仍然无法工作。