1

我有一个 Sinatra 应用程序,我从/assets. 工作得很好,但由于我有点完美主义者,为了尽可能保持整洁,我希望从它们各自的子目录中提供资产。
即我想#{root}/app/assets/stylesheets/application.css.scss成为/assets/stylesheets/application.css,而不是/assets/application.css像现在这样。

这可能吗?Middleman 做了类似的事情,但我不确定它实际上在多大程度上依赖 Sprockets。

4

1 回答 1

0

Middleman是一个静态站点生成器,因此资产被预编译并像在公共目录中一样提供服务,这意味着您可以拥有一个子目录,stylesheets它将成为用于访问子目录中资产的 url 的一部分。

Sprockets在访问资产时对其进行编译,然后缓存它们(据我所知),并使用Rack 应用程序从它们的逻辑路径中提供资产。来自 Sprockets 自述文件:

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

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

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

于 2013-02-15T22:23:26.043 回答