【发布时间】:2023-03-29 13:42:01
【问题描述】:
我正在使用 Zend 框架开发一个 PHP 项目,该框架使用 Apache 在本地提供服务。是否有 Grunt/Gulp 的插件/配置允许我使用这个现有的服务器并在我的 phtml/php、CSS 和 JavaScript 文件发生更改时重新加载我的浏览器?
【问题讨论】:
标签: javascript php apache gruntjs gulp
我正在使用 Zend 框架开发一个 PHP 项目,该框架使用 Apache 在本地提供服务。是否有 Grunt/Gulp 的插件/配置允许我使用这个现有的服务器并在我的 phtml/php、CSS 和 JavaScript 文件发生更改时重新加载我的浏览器?
【问题讨论】:
标签: javascript php apache gruntjs gulp
普通的live-reload 插件可以正常工作。它通过运行一个单独的服务器来工作,该服务器只报告更改——它不直接为您的代码提供服务。
如果您使用 gulp,请按照 directions in the gulp-livereload README 设置和运行 LR 服务器。该插件会通知 LR 服务器文件已更改,LR 服务器会通知您的浏览器发生更改。
您可以轻松地将监视添加到提供给浏览器的任何文件中,并将它们通知 LR 服务器——即使它们没有被 gulp(或 grunt)处理。
您有三种选择在浏览器中触发更改通知。
如果您有单独的开发和生产版本(我希望您这样做),然后使用 the gulp-embedlr plugin 将脚本标记注入您的 HTML 或 PHP 文件。
如果你不能让它与你的 PHP 设置一起工作,那么你可以使用 PHP 自己注入脚本标签,这样它只会在开发模式下运行时注入。代码可以从 embedlr 插件中获取,但看起来是这样的:
<script type="text/javascript">document.write('<script src="//localhost:35729/livereload.js?snipver=1" type="text/javascript"><\/script>')</script>
显然,如有必要,您可以调整源域和端口以匹配您的 LR 设置。
如果您无法做到这一点,没有办法运行单独的开发和生产环境,或者只是不希望以适用于所有浏览器(包括移动设备)的自动方式进行处理您可以安装 LiveReload 浏览器插件。只需在浏览器的插件/附加商店/市场/任何地方寻找它。这要求您在每次进行开发工作时都记得打开它。
【讨论】: