【问题标题】:Integrating Grunt/Gulp and Livereload to existing Apache server serving PHP/Zend将 Grunt/Gulp 和 Livereload 集成到服务 PHP/Zend 的现有 Apache 服务器
【发布时间】:2023-03-29 13:42:01
【问题描述】:

我正在使用 Zend 框架开发一个 PHP 项目,该框架使用 Apache 在本地提供服务。是否有 Grunt/Gulp 的插件/配置允许我使用这个现有的服务器并在我的 phtml/php、CSS 和 JavaScript 文件发生更改时重新加载我的浏览器?

【问题讨论】:

    标签: javascript php apache gruntjs gulp


    【解决方案1】:

    普通的live-reload 插件可以正常工作。它通过运行一个单独的服务器来工作,该服务器只报告更改——它不直接为您的代码提供服务。

    如果您使用 gulp,请按照 directions in the gulp-livereload README 设置和运行 LR 服务器。该插件会通知 LR 服务器文件已更改,LR 服务器会通知您的浏览器发生更改。

    您可以轻松地将监视添加到提供给浏览器的任何文件中,并将它们通知 LR 服务器——即使它们没有被 gulp(或 grunt)处理。

    您有三种选择在浏览器中触发更改通知。

    1. 如果您有单独的开发和生产版本(我希望您这样做),然后使用 the gulp-embedlr plugin 将脚本标记注入您的 HTML 或 PHP 文件。

    2. 如果你不能让它与你的 PHP 设置一起工作,那么你可以使用 PHP 自己注入脚本标签,这样它只会在开发模式下运行时注入。代码可以从 embedlr 插件中获取,但看起来是这样的:

      <script type="text/javascript">document.write('<script src="//localhost:35729/livereload.js?snipver=1" type="text/javascript"><\/script>')</script>
      

      显然,如有必要,您可以调整源域和端口以匹配您的 LR 设置。

    3. 如果您无法做到这一点,没有办法运行单独的开发和生产环境,或者只是不希望以适用于所有浏览器(包括移动设备)的自动方式进行处理您可以安装 LiveReload 浏览器插件。只需在浏览器的插件/附加商店/市场/任何地方寻找它。这要求您在每次进行开发工作时都记得打开它。

    【讨论】:

    • 感谢您消除我的困惑。我没有意识到 live-reload 运行了一个单独的服务器并且实际上并没有为我的文件提供服务。我将 gulp-livereload 插件与 Chrome 扩展一起使用,效果很好。
    • 感谢您的澄清!与 firefox 插件配合使用效果很好。
    猜你喜欢
    • 2017-10-04
    • 2013-11-18
    • 2015-03-11
    • 2017-03-08
    • 2015-01-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-12-07
    相关资源
    最近更新 更多