Hello Stack Overflow社区!我是Ruby on Rails的新手,接近我的第一个项目的结尾,我在准备我的应用程序生产方面遇到了一些麻烦。
我的第一个问题是我需要刷新页面以使我的个人jQuery工作。我通过将jquery-turbolinks gem添加到项目并将jquery.turbolinks添加到清单文件来修复此问题。
但是,出于某种原因,这种快速解决方案对我的生产环境不起作用。所以我只是更改了清单文件中某些内容的顺序,将config.serve_static_files更改为false,将config.assets.compile更改为true(在production.rb中)。所以现在我的JS都没有在生产中工作。
然后,从网上收集的信息中,我运行了bundle exec rake资产:precompile。现在,我的JS或CSS效果在制作中都不明显!
最后,为了解决这个错误,我运行了捆绑exec rake资产:干净。现在终端抱怨我在使用git进行更改时有“未跟踪文件”。
显然,我处在一个绝对凌乱的状态。除了这个错误,我的项目运行顺利,所以任何帮助都会非常受欢迎。PS:一切都在开发环境中完美运行......
答案 0 :(得分:1)
欢迎使用StackOverflow!
根据您的解释,似乎在本地运行预编译并不是很有效,并且尝试运行rake assets:clean
已经让Git说需要提交更改。
在Sprockets中,运行rake assets:clean
仅从公共/资产中删除旧资产(保留最新的3个副本) - [source]。运行此命令会更改您的公共/资产目录,并且尚未提交这些更改,因此终端会抱怨。
如果您想要擦除public/assets
并从头开始生成资源,您可以执行以下操作:
rake assets:clobber
RAILS_ENV=production bundle exec rake assets:precompile
使用clobber
将销毁资产目录,而后面的precompile
命令将以应该反映您的生产环境的方式重建资产。提交和部署后,新资产应在生产中正确显示。
希望这有帮助!