使用WordPress和WAMP / MAMP服务器进行实时加载


grunt livereload with WordPress and WAMP/MAMP server?

现有的关于grunt livereload和WordPress开发的帖子解释说,你仍然需要WAMP/MAMP来为PHP和MySQL服务。您不能只使用在所有基本的 grunt livereload 示例中在端口 35729 上重新加载索引.html准系统服务器。我明白了。

但据我了解,我必须让我的 grunt livereload 指向与 WAMP 相同的端口,否则它们在不同的宇宙中运行,不会发生活体加载的好处。

我想这意味着像这样设置咕噜声:

      options: {
          livereload: 80
      },

但如果我这样做,咕噜咕噜的抱怨

致命错误。端口 80 已在使用

同样,如果我先启动咕噜声,然后是 WAMP,是 Apache 抱怨该端口已经在使用中。

那么,如何让他们在同一页面上呢?

PS 在 WordPress 中.php我的函数包括这个,根据其他地方记录的建议设置,不确定这是否也是问题的一部分:

if (in_array($_SERVER['REMOTE_ADDR'], array('127.0.0.1', '::1'))) {
    wp_register_script('livereload', 'http://localhost/myproject/livereload.js?snipver=1', null, false, true);
    wp_enqueue_script('livereload');
}

livereload 端口由 Web 套接字使用。当Grunt执行任务时,会向网页发送一条消息,说"重新加载你"。这与"基本的咕噜咕噜实时加载示例"相同。服务器在端口 80 上通过 http 传递 html(和其他文件),而 livereload 服务器则在另一个端口上侦听(如果需要,则为 35729)。我没有看到那是你的问题:-/。

我认为当您从本地主机访问站点时,您的 PHP 代码只需在您的页面上添加<script src="http://localhost/myproject/livereload.js?snipver=1"></script>

Apache(在WAMP中)在端口80上运行,所以你不能用它来livereload。做这样的事情:

// functions.php
if (in_array($_SERVER['REMOTE_ADDR'], array('127.0.0.1', '::1'))) {
    wp_register_script('livereload', 'http://localhost:9000/myproject/livereload.js?snipver=1', null, false, true);
    wp_enqueue_script('livereload');
}
// Gruntfile.js
options: {
    livereload: 9000
},

它不必是端口 9000,只需是 80 以外的端口。