我的资产路径中有以下文件:
javascripts/abc.js
templates/abc.js.mustache # this gets compiled to abc.js
当然,他们都会被要求assets/abc.js
。
有修复吗?如果没有,需要修改Sprockets源的哪一部分?
我的想法是,如果引擎可以删除扩展名,那么添加后缀就足够了。
答案 0 :(得分:1)
这可能太明显了,但重命名文件不是更好吗?我理解你的问题的本质,但很难想象最终的要求,它们强制这些文件的相同文件名。因此,您有foobar.js
和foobar.js.mustache
,它们会编译为foobar.js
。为什么他们有相同的名字?他们做同样的事情?如果你问我,这是设计上的缺陷。
答案 1 :(得分:1)
我有同样的问题,还没有找到令人满意的解决方案。我的网站有许多复杂的全栈插件(又称引擎),它们有很多css,js和图像文件。必须命名空间,例如每个插件中的“styles.css”有点糟糕。升级到Rails 3时,我认为文件解析器会将引擎/插件放入/ styles中,但不会,它们都会合并到一个虚拟路径中。
我目前的临时解决方案是构建一个我运行的rake任务,检查重复的文件名。我在提交代码和部署之前运行它。 Hackity!如果这有帮助,那很好,如果没有,也许有人在那里有一个更优雅的解决方案......