如何在Rails生产模式下压缩/ public中的js,css文件

时间:2014-06-20 08:36:52

标签: javascript css ruby-on-rails

我在我的Rails项目中放了一堆javascript插件和图片,css。

这是结构。

公共/ CSS 公共/ JS 公共/图像

我添加了

config.assets.compile = true  
config.serve_static_assets = true

in production.rb

如果文件位于/ app / assets /

内,它压缩得很好

外部插件怎么样?

我需要做些什么来压缩/ public中的一堆lib?

2 个答案:

答案 0 :(得分:0)

资产管道

你错过了asset pipeline的观点;特别是precompilation过程:

  

Rails捆绑了一个rake任务来编译资产清单   和管道中的其他文件。

     

编译资产将写入指定的位置   config.assets.prefix。默认情况下,这是/ assets目录。

     

您可以在部署期间在服务器上调用此任务来创建   直接在服务器上编译资产的版本。见下   有关本地编译的信息部分。

-

<强>预编译

precompile your asset可以回答您的问题 - 为此,您需要能够将相关资产文件存储在app/assets/....

您可以使用以下命令预编译生产中的资产:

$ rake assets:precompile RAILS_ENV=production

这将基本压缩/缩小您的各种资产文件到您分配给预编译过程的不同文件。默认情况下,它们都被放入application.*application.css / application.js等)

-

<强>修正

为此,您需要将所有文件移动到app/assets/...文件夹中。这将它们放入asset pipeline,这将允许Rails正确预编译资产,并根据需要将它们发送到/public文件夹

答案 1 :(得分:0)

我觉得你看起来像这样

config.assets.paths << File.join(Rails.root, '/my/special/path')