作为一个RoR新手,我一直在阅读/试图理解资产管道是如何工作的,以及它如何影响开发与生产,以及如何使我的样式表/ JavaScripts可用于我的应用程序,但我仍然感到困惑。Rails:Stylesheets/Javascripts work in Dev,not Prod
在我的应用程序,我经常打电话从我application.css使用CSS/JS文件/ .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 Martin的建议,我将.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中运行它。我将在稍后转向更友善的供应商。
再次感谢。
这可能是愚蠢的问,但你之前运行'rake assets:precompile'吗? – MrYoshiji
每次生产时都需要这样做吗?比如当我编辑/添加.css/.js? – user464180
我刚刚在生产中运行它。一些样式现在正确显示,但我的JavaScript仍然缺失。 – user464180