sprockets重复文件命名

时间:2011-11-06 02:27:19

标签: ruby-on-rails assets sprockets

我的资产路径中有以下文件:

javascripts/abc.js
templates/abc.js.mustache # this gets compiled to abc.js

当然,他们都会被要求assets/abc.js

有修复吗?如果没有,需要修改Sprockets源的哪一部分?

我的想法是,如果引擎可以删除扩展名,那么添加后缀就足够了。

2 个答案:

答案 0 :(得分:1)

这可能太明显了,但重命名文件不是更好吗?我理解你的问题的本质,但很难想象最终的要求,它们强制这些文件的相同文件名。因此,您有foobar.jsfoobar.js.mustache,它们会编译为foobar.js。为什么他们有相同的名字?他们做同样的事情?如果你问我,这是设计上的缺陷。

答案 1 :(得分:1)

我有同样的问题,还没有找到令人满意的解决方案。我的网站有许多复杂的全栈插件(又称引擎),它们有很多css,js和图像文件。必须命名空间,例如每个插件中的“styles.css”有点糟糕。升级到Rails 3时,我认为文件解析器会将引擎/插件放入/ styles中,但不会,它们都会合并到一个虚拟路径中。

我目前的临时解决方案是构建一个我运行的rake任务,检查重复的文件名。我在提交代码和部署之前运行它。 Hackity!如果这有帮助,那很好,如果没有,也许有人在那里有一个更优雅的解决方案......