从Sinatra的Sprockets子目录中提供资源

时间:2013-02-15 17:04:52

标签: sinatra sprockets

我有一个Sinatra应用程序,我正在为/assets的Sprockets资源提供服务。效果很好,但由于我是一个完美主义者,为了尽可能保持整洁,我希望从各自的子目录中提供资产。
即我希望将#{root}/app/assets/stylesheets/application.css.scss /assets/stylesheets/application.css作为/assets/application.css投放,而不仅仅是{{1}}。

这可能吗?米德曼做了类似的事情,但我不确定它实际上是多少依靠链轮。

1 个答案:

答案 0 :(得分:0)

Middleman是一个静态网站生成器,因此资产已经过预编译,就像它们位于public directory中一样,这意味着您可以拥有一个stylesheets它将成为用于访问子目录中资产的URL的一部分。

Sprockets在访问资产时对其进行编译,然后对其进行缓存(据我所见),并使用Rack application逻辑路径中提供资源。从链轮自述文件:

  

逻辑路径是资产源文件相对于其的路径   包含加载路径中的目录。例如,如果您的加载路径   包含目录app / assets / javascripts:

     

资产源文件|逻辑路径
  app / assets / javascripts / application.js | application.js中
  app / assets / javascripts / models / project.js |模型/ project.js

我没有在文档中看到明显的更改设置,除非您愿意查看源代码并进行一些修改,否则我会说答案是否定的。也许您可以尝试缩短加载路径并查看它是否包含子目录?