繁体   English   中英

生产环境中的Rails和Javascript

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM