假设您有一个gem,它只包含静态文件,不包含代码(除了gem规范中的Ruby元数据、Rakefiles等)。静态文件是CSS、JS和图像之类的东西。
现在,您希望在使用sinatra-assetpack或其他类似资产管道的Sinatra web应用程序中使用这些资产。我们不希望这些资产作为它们包含在其中的每个项目的一部分,因为它们可能会改变,而且我们不想更新N个项目。
在多个Sinatra应用程序中包含静态内容的正确方法是什么?
发布于 2014-04-12 08:43:13
我所做的方法是将静态资产添加到gem的vendor目录中。通常,我会用bundle install --binstubs --path vendor设置一个项目,这样目录就在那里了,我还看到了其他Rails宝石在使用供应商,所以我就把东西放进去了。它可以创建引用创业板库文件中的资产的路径非常长,但无论如何,它都是为创业板使用者而抽象的。
有关示例,请参见机架::JQuery。此外,为了不必在不断更新回购文件的同时构建哪些资产,所以我将版本号添加到静态文件中(您也可以使用目录),并使用宝石规格中的这一行只将当前资源添加到gem中。
我已经用CSS也是 (和其他一些人,它变成了一种上瘾:),但正如您所看到的,在某些时候,我选择了一种糟糕的方式来命名目录,但为了保持一致性,我现在继续使用它。
希望这能有所帮助。如果你找到更好的方法,请告诉我!
https://stackoverflow.com/questions/23016858
复制相似问题