显然,你实际上可以得到实时重载使用时在 Cloud9 上工作Apache作为网络服务器,通过使用“mod_proxy_wstunnel”代理 grunt-watch 的 websocket 请求:
1)添加以下指令/etc/apache2/mods-available/proxy_wstunnel.load
ProxyPass /livereload/ ws://127.0.0.1:35729/
2)启用“mod_proxy_wstunnel”及其依赖项“mod_proxy”
ln -s /etc/apache2/mods-available/proxy_wstunnel.load /etc/apache2/mods-enabled/proxy_wstunnel.load
ln -s /etc/apache2/mods-available/proxy.load /etc/apache2/mods-enabled/proxy.load
3)重新启动阿帕奇
service apache2 restart
4) 到目前为止一切顺利,现在您必须通过修改 Livereload 将使用的 websocket URL 进行硬编码livereload.js脚本,在我的特殊情况下,它位于〜/myworkplace/grunt-contrib-watch/node_modules/tiny-lr/lib/public/livereload.js,您需要更改以下行:
this._uri = "ws://" + this.options.host + ":" + this.options.port + "/livereload/";
to
this._uri = "ws://YOUR_WORK_PLACE.c9.io/livereload/";
5) 最后但并非最不重要的一点是,您必须参考livereload.js直接在您想要的页面中编写脚本,在我的特定实例中:
<script src="/ng-boilerplate/node_modules/grunt-contrib-watch/node_modules/tiny-lr/lib/public/livereload.js"></script>
希望这可以帮助某人,尤其是节省一些时间:)