2017-04-21 24 views
1

我预编译了我的资产,即CSS,javascript和字体文件以减小文件大小。使用RAILS_ENV=production rake assets:precompile生产服务器上的共享/公共/资产与源代码上的rails public/assets上的预编译资产之间有什么区别?

我已经在以下路径在服务器上压缩资产:

共享/公共/资产

但无论如何,我继续,并再次预编译他们对我的地方和他们得到了产生里面公共/资产文件夹。我注意到压缩文件与服务器shared/public/assets完全一样。但是我的团队中的测试人员正在使用一些在线工具进行测试。他们都说“你的Java脚本文件需要缩小。”那么,如果我将这些本地预编译资产推送到生产源代码中,这个“缩小”问题是否会得到解决?

+0

导轨导向这个主题http://guides.rubyonrails.org/asset_pipeline.html –

回答

3

您不应该将本地预编译资源推送到生产源代码,否。 您的构建过程应该包括在部署期间预编译生产资产。如果您使用的是Rails 5,那么默认情况下它已经打开。只要生产环境具有适当的环境变量(同样,默认情况下,环境变量'生产'负责处理所有这些事情),资产将被预编译。

你说你的压缩文件在运行rake资产之后:precompile与服务器上的完全一样。这意味着你的JavaScript应该有,应该被缩小和丑化(再次,默认为Rails 5)。要确认是这种情况,请在chrome中打开开发工具,重新加载(ctrl + shift + r)并检查JS文件是否正在“网络”选项卡下加载。如果资产管道是应该使用的,那么您应该只能在这里看到缩小和丑化的js文件。如果你打开它们,它们应该已经被缩小和丑化了。如果情况并非如此,那么资产管道不会用于获取JS文件,或者您的构建过程已被更改。
如果这些JS文件中的大部分都被缩小并且被忽略 - 检查那些不是。资产管道以外是否添加了一些图书馆?这些文件是否缩小了?

如果你所有的JS文件实际上是精缩,然后告诉你的测试仪使用不同的工具;)

+0

不错我通过检查检查。没有'.min.js'扩展名文件。我看到一个'assets/applicatioin-ddcdcdmcmmdkd8d88dc.js'。那是一个问题吗? – user3576036

+0

是的,这可能是在线工具报告JS未被缩小的问题。他们中的大多数会将缩小的JS检测为具有.min.js扩展名的JS。但情况并非如此。打开你的JS文件(在浏览器中)。你看到任何空间吗?像你这样的变量名在源代码中定义了它们,还是它们不同(例如单个字母'a','b','c'等)?如果你看不到空格,变量大多是单个字母,那么你的JS被缩小。它是否具有.min.js扩展名无关紧要,最终,它可能只对您的测试仪正在使用的工具很重要。 –

相关问题