Rails与Twitter Bootstrap:仍在提供旧资产

13

遇到了麻烦。我正在开发一个Rails应用程序,并使用twitter-bootstrap-rails gem来包含Twitter Bootstrap样式。该gem在app/assets/stylesheets中生成一个名为'bootstrap_and_overrides.css.less'的文件,我一直在使用它来修改一些Bootstrap变量并包含自己的CSS覆盖。

一切都很顺利,但今天出了问题。由于某种原因,我对这个文件所做的更改今天虽然保存了,但Rails仍在提供旧版本的文件!我已经搜索过,但没有任何预编译版本的文件(在public/assets中也没有),只有我一直在修改的assets/stylesheets中的那个文件。就应用程序内部目录而言,一切看起来都很正常,但当我启动rails服务器、加载页面并使用元素检查器查看样式表时,它使用的是一个我已删除规则的“bootstrap_and_overrides.css.less”的旧版本。我已经关闭了浏览器缓存并在4个不同的浏览器中尝试过,因此我相信这不是浏览器缓存的结果。

Rails资产管道似乎只提供了一个不存在的文件版本!有人知道这可能是为什么吗?

1个回答

31

问题已解决。

资产管道在tmp/cache中存储了一个缓存版本。

我运行了rake tmp:clear,删除了里面的所有文件,然后 Rails提供了我想要的*bootstrap_and_overrides.css.less*版本。

为什么缓存版本突然停止更新我不知道。Arrghhhh!


3
那解决了我遇到的同样的宝石错误!谢谢,我完全不知道那个rake任务。 - Ode
1
谢谢。我在使用bootstrap-sass时也遇到了同样的问题。这个gem已经更新以运行最新版本的bootstrap,但我的rails应用程序仍然提供旧版本。 - Lee McAlilly
看起来 rake tmp:cache:clear 起作用了。不过似乎这里仍然潜藏着一个资产管道的 bug。 - Alex Dixon
另外,我必须重新启动服务器。 - GuiGS
我靠,我刚刚浪费了一个小时在这个上面。我简直不敢相信这个缓存有多黏。我试过了所有可能的方法,包括重启电脑。最后我运行了rake任务,但忘记了重启服务器。这让我抓狂了。然后我终于想起来重启服务器了。最麻烦的是我的编辑器(atom.io) 不会加载 /tmp 文件夹,所以我一直在努力找出文件从哪里加载!谢谢你啊。 - vinhboy

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接