Rails:当视图(和相关文件)更改时自动刷新浏览器

6
我的工作(在Rails中)很大程度上集中在视图、图片、SASS/CSS和Coffescript/Javascript文件上,我希望有一个解决方案,每当我对任何这种类型的文件进行更改时,都可以刷新浏览器。就像autotest或watchr一样,但是用于“设计”任务。
我已经看过watchr和fs-event,它们似乎提供了相关功能,并搜索了网络,但我仍然找不到现成的解决方案。难以相信还没有做过这件事,明显这些工具已经存在。
假设真的不存在这样的工具,我想自己尝试编写解决方案。因此,如果您有关于要考虑什么,哪里可以查看有趣的项目等方面的建议,我将不胜感激。
更新: 一个示例工作流程如下:
1. 在终端中启动“监视器应用程序” 2. 如果Rails服务器未运行,则启动 3. 浏览器窗口自动打开,指向rails服务器 4. 我去更改视图中的一些HTML 5. 浏览器会自动刷新 6. 我更新一些CSS 7. 浏览器会自动刷新 8. 我添加一个新的JS文件 9. 浏览器会自动刷新 10. ...
干杯!
5个回答

10
根据您的描述,我认为LiveReload可以满足您的需求。
您需要更改.livereload文件,以便仅在特定文件更改时重新加载浏览器,但所有内容都在自述文件中详细介绍(请滚动到配置部分)。
还有XRefresh,它可以做类似的事情,但我从未使用过。

Livereload看起来很不错!你知道我是否可以在Firefox中使用它吗? - polarblau
XRefresh 看起来就是我想要的。谢谢! - polarblau

4

3

这看起来也很不错!需要读一下,但这可能正是我想要的。谢谢。 - polarblau
好的,这很好 - 谢谢!虽然我不太喜欢只是为了让它起作用而将代码插入到我的项目中。 - polarblau

1

已经有一段时间了,但我找到了比这些选项更好的东西。使用Live.js,您甚至不需要修改项目,只需单击书签并在更改时自动更新即可。

唯一的缺点是您的服务器日志中会收到很多HEAD请求,但由于我在进行样式编辑时使用它,所以这并不真正困扰我。我宁愿这样做,也不想为开发工具而修改我的项目。


看起来是一个有趣的选择。然而,随着Rails 4和SSE的出现,我期望很快会有一个仅限于Rails版本的gem出现。 - polarblau

1
对于使用Hotwire(默认)运行的Rails 6或7,您可以使用hotwire-livereload gem。它会监视资源和视图,并使用ActionCable(WebSockets)来触发Turbo刷新。
请注意,您示例工作流程中的#3(打开Web浏览器)不会被涵盖。

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