javascript - 如何将静态 Assets 打包到 gem 中以便在 Sinatra 应用程序中使用?

标签 javascript css ruby sinatra rack

假设您有一个只包含静态文件而没有代码的 gem(除了 gemspec、Rakefiles 等中的 Ruby 元数据)。静态文件是 CSS、JS 和图像之类的东西。

现在您想要在使用 sinatra-assetpack 或其他类似 Assets 管道的 Sinatra 网络应用程序中使用这些 Assets 。我们不希望这些 Assets 作为它们所包含的每个元素的一部分,因为它们可能会发生变化,我们不想更新 N 个元素。

在多个 Sinatra 应用程序中包含静态内容的正确方法是什么?

最佳答案

我的做法是将静态 Assets 添加到 gem 的 vendor 目录中。通常我会使用 bundle install --binstubs --path vendor 设置一个元素,所以那个目录无论如何都在那里,而且我看到其他一些 Rails gem 正在使用 vendor,所以我把东西放在那里.它可以使引用 gem 库文件中的 Assets 的路径变得非常长,但无论如何它都被 gem 消费者抽象掉了。

参见 Rack::JQuery举个例子。此外,为了不必在不断更新存储库的同时围绕应该构建哪些 Assets 而胡思乱想,我将版本号添加到静态文件中(您也可以使用目录执行此操作)并使用 this line in the gemspec仅将当前资源添加到 gem。

我用 CSS too 完成了它(和其他一些人,它变成了一种瘾:)但正如您所看到的,在某些时候我选择了一种糟糕的目录命名方式,但为了保持一致性,我现在会坚持使用它。

希望对您有所帮助。如果您找到更好的方法,请告诉我!

关于javascript - 如何将静态 Assets 打包到 gem 中以便在 Sinatra 应用程序中使用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23016858/

相关文章:

iphone - 从纵向切换到横向时背景图像未调整大小

javascript - .then() 似乎没有等待前一个 .then()

javascript - 更改 js 函数参数的引用

javascript递归返回错误值

CSS Bootstrap 边框底部

css - 在移动 View 中连续显示社交图标

ruby-on-rails - 我们如何配置 Rails 以不清除测试数据库?

ruby - 如何修复 activesupport 3.0.0 与 2.x 相比的行为差异?

ruby-on-rails - WickedPDF 本地渲染与生产渲染不同

像 Windows 一样的 Javascript 时间选择器