【发布时间】:2016-05-24 19:15:52
【问题描述】:
我正在尝试将 Rails 应用程序打包为 gem。我想放入 gem 的部分内容是预编译的资产(因此用户不必为此烦恼)。但是,gem build <my_gemspec> 阻塞了public/assets 中消化的预编译文件的超长文件名。有其他人经历过吗?
谢谢!
另一个注意事项:这不是一个可以被其他应用程序使用的 gem。相反,它是一个独立的 Rails 应用程序的包装。 gem 让人们更容易使用它,只需调用它的可执行文件来运行。
【问题讨论】:
-
gem 中的预编译资产在现实中并没有那么有用 - 在大多数情况下,您希望将 gem 资产包含在自己的应用程序清单中,以便资产管道将其缩减为单个文件以提高性能.它只会增加使用您的 gem 的应用程序的 slug 大小,这不是一个理想的特性。
-
确实,根据官方 Rails 文档 (guides.rubyonrails.org/…),建议在初始化程序中定义用于预编译的资产。
-
我最近在 gem 提交了一个问题请求来改变这个愚蠢的限制。想出这个的人真的很疯狂——显然 155 是一个神奇的数字。或超过 100 个字符。但是在我的 linux 系统上,这么长的文件名可以正常工作;红宝石本身也可以正常工作。只是 gem 设置了这个完全任意的限制 - 现在是时候改变它了,这样这个问题就完全消除了。
标签: ruby-on-rails ruby rubygems