这个故事是这样的。
我在 assets/javascipts 和 assets/stylesheets 目录下存放了一个 js 文件和一个 css 文件。
为了方便使用,我把这两个文件和一些 helper 方法单独封装成了一个 gem。
接着写了一些东西之后,我删除了这两个文件,修改 Gemfile 加载这个本地 gem。
运行测试之后发现 gem 里的 js 和 css 并没有被成功载入,打开 firebug 发现浏览器确实加载了这两个文件,但是内容却是空白的。
于是我在 assets 里删除了这两个文件的 require,然而这两个空白文件居然还会被加载。
一定是我没有把 rails 目录里的文件删干净,经过检查我确实是删除了这两个文件的。
没办法我只能用 git diff 一点点查到底哪里的改动会导致这个问题,结果,我被自己逗乐了。
原来,在删除了文件以后,我新建了一个 controller,自动生成了 xxx.coffee 和 xxx.sass,而这个 controller 的名字正好和那个文件是一样的。
所以,application 里 require 的优先级应该是 coffee 和 sass 大于 js 和 css 的吧。
宝贵的时间就这么被浪费掉了,唉,不如就泡杯茶,休息一下好了。