新手问题 guard-livereload 只生成 text/plain 的回应

rco · 2014年04月02日 · 最后由 kai1248 回复于 2014年04月03日 · 2825 次阅读

参考这个教学视屏 Guard is Your Best Friend。 所在的本机平台是 linux 及 chromium 33.0.1750.152 (256984) 先是从 guard-sass 测没问题,但试到 guard-livereload,一直会有以下问题:

1.无法生成回应为 HTML 的 mime: Guardfile 的内容为:

guard 'livereload' do
  watch(%r{.+\.(css|html|js)$})
end

在同一文档夹里有 index.html 浏览器访问 http://localhost:35729/index.html 虽然 index.html 随时变动能够回应到 chromium 上没问题, 但总是只看到原来 index.html 的原始码,总是回应 text/plain 的格式给浏览器。 也看不到网络上有人有此问题,很纳闷怎么解决?

2.浏览器用 file:///访问无法执行 LiveReload 插件 虽然用 file:///home/user/Project/index.html 当网址可以看到正常的 HTML 生成, 但 chromium 右上角的 LiveReload 的按键却没作用, 看教学视屏上是用 MacOS 上示范是正常的, 不晓得这是在 linux 上的限制?还是我漏了什么?

忙了半天结果这两个问题都没享受到即时回应生成到浏览器的好处...

把问题放一边几个小时睡醒后, 把自己的 ~/.rvm/gems/ruby-2.1.1/gems/guard-livereload-2.1.2/lib/guard/livereload/websocket.rb 的 35 到 36 行之间加入

when '.html' then 'text/html'

这样子访问 http://localhost:35729/index.html 就不会只出现 HTML 原始码了。

而另个问题,在家里电脑装 chromium 的 livereload 扩展程序时, 才发现扩展程序栏里的 livereload 有个 “允许访问文件网址” 的项目, 打勾后 file:///home/user/Project/index.html 的网址 LiveReload 也能生效了。

只是不晓得为何这好像是显而易见的问题, 却不将 text/html 加到 case 的条件里? 强行加入那一行之后,是否日后会有什么副作用?

推荐用Linner,完美支持 LiveReload

需要 登录 后方可回复, 如果你还没有账号请 注册新账号