[英]Rails and Javascript in production environment
您好Stack Overflow社区! 我是Ruby on Rails的新手,在我的第一个项目快要结束时,我在准备好应用程序生产时遇到了一些麻烦。
我的第一个问题是我需要刷新页面才能使我的个人jQuery工作。 我通过将jquery-turbolinks gem添加到项目并将jquery.turbolinks添加到清单文件来解决此问题。
但是,由于某种原因,这种快速解决方案不适用于我的生产环境。 因此,我只是更改了清单文件中某些内容的顺序,将config.serve_static_files更改为false,将config.assets.compile更改为true(在production.rb中)。 所以现在我的JS都没有投入生产。
然后,从网上收集的信息中,我运行了捆绑执行rake asset:precompile。 现在,我的JS或CSS效果在生产中都不明显!
所以最后,为了消除这种错误,我运行了捆绑执行程序rake asset:clean。 现在终端抱怨用git提交更改时我有“未跟踪的文件”。
显然,我处于绝对混乱的境地。 除了这些错误之外,我的项目还运行得很顺利,所以任何帮助将不胜感激。
PS:一切都在开发环境中完美运行...
欢迎来到StackOverflow!
从您的解释来看,在本地运行预编译似乎不太奏效,并且尝试运行rake assets:clean
使得Git认为需要进行更改。
在Sprockets中,运行rake assets:clean
只会从公共/资产中删除旧资产(保留最近的3份副本)-[ 来源 ]。 运行此命令会更改您的public / assets目录,并且尚未提交这些更改,因此终端会抱怨。
如果您希望擦除public/assets
并从头开始生成资产,则可以执行以下操作:
rake assets:clobber
RAILS_ENV=production bundle exec rake assets:precompile
使用clobber
将破坏资产目录,而其后的precompile
命令将以应反映您的生产环境的方式重建资产。 提交这些更改并部署后,新资产应在生产中正确显示。
希望这可以帮助!
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.