Grunt browserSync grunt-php在更改时不会重新加载PHP文件

时间:2016-10-22 20:02:31

标签: grunt-contrib-watch gruntfile grunt-php grunt-browser-sync

我正在使用Grunt + browserSync + grunt-php。服务器正常启动。问题是每当我对PHP文件进行更改时,更改都会在浏览器中自动重新加载 。尽管设置到位,我还是必须手动重新加载页面。过去一周一直试图解决这个问题,但没有成功。尝试了其他在线资源,但也没有帮助。请帮忙。

目录结构:

my_app/
   src/
      index.php
      about.php
   dist/

Gruntfile.js:

"use strict";

module.exports = function (grunt) {

    grunt.initConfig({

        pkg: grunt.file.readJSON('package.json'),

        watch: {
            php: {
                files: ['src/**/*.php']
            }
        },

        browserSync: {
            dev: {
                bsFiles: {
                    src: 'src/**/*.php'
                },
                options: {
                    proxy: '127.0.0.1:8010', //our PHP server
                    port: 8080, // our new port
                    open: true,
                    watchTask: true
                }
            }
        },

        php: {
            dev: {
                options: {
                    port: 8010,
                    base: 'src'
                }
            }
        }

    });


    grunt.registerTask('default', [
        'php', // Using the PHP instance as a proxy
        'browserSync',
        'watch'             // Any other watch tasks you want to run
    ]);

};

1 个答案:

答案 0 :(得分:0)

善良的灵魂帮助我解决了问题。我不赞成答案,并希望分享解决方案,以便它可以帮助有需要的人。这是:

1)只需确保在PHP文件中有要重新加载的body标记。

2)在页面中包含以下JS代码:

<script id="__bs_script__">
//<![CDATA[
    document.write("<script async src='/browser-sync/browser-sync-client.js?v=2.17.5'><\/script>".replace("HOST", location.hostname));
//]]>
</script>