Gulp browsersync仅重新加载';根';index.html

Gulp browsersync仅重新加载';根';index.html,gulp,browser-sync,Gulp,Browser Sync,我正在开发一个网站构建工具()BrowserSync在root index.html上运行时效果很好,但它不会在其他任何地方重新加载… 以下是我如何做的(简化)方式。。。假设我有: src/index.html src/_header.html src/page/index2.Html 一个任务通过包含HTML部分(它们的名称以“\开头)来构建HTML页面 一个任务启动浏览器同步服务器 gulp.task('serveLocal', () => { return browserS

我正在开发一个网站构建工具()BrowserSync在root index.html上运行时效果很好,但它不会在其他任何地方重新加载…

以下是我如何做的(简化)方式。。。假设我有:

src/index.html
src/_header.html
src/page/index2.Html
一个任务通过包含HTML部分(它们的名称以“\开头)来构建HTML页面

一个任务启动浏览器同步服务器

gulp.task('serveLocal', () => {
    return browserSync.init({
        server:{ baseDir : 'www' },
        port: 3000,         
        open: true
    }); 
});
一个任务被调用重新加载browserSync(分开,因为它被我的项目中的其他“观察者任务”调用)

还有一个任务监视所有HTML(包括部分),应该重建整个页面,然后重新加载

gulp.task('watch-pagesHtml', () => {
    const SRC = 'src/**/*.html';        
    return watch( SRC, () => {
        runSequence('pagesHtml', 'liveReload');
    });
    return;
});
I通过如下方式启动runSequence来启动这些任务:

gulp.task('default', () => {
    runSequence('pagesHtml', 'watch-pagesHtml');
});
当我在
索引
\u标题
上工作时:一点问题都没有!将应用、构建更改,并重新加载浏览

但是,当我处理
页面/index2
时,会应用并构建更改,但不会重新加载浏览器。(尽管F5可以工作并显示应用的更改)


我做错了什么?

Browsersync通过在主体中注入异步脚本标记来工作,启动项目并检查主体标记。(使用浏览器开发工具)

如果您不能对以下内容进行罚款:
(和browsersync文件),存在问题

我阅读了您的代码,我注意到您在头文件中编写了
(打开标记),在其他页脚文件中编写了
(关闭标记),这让人感到困惑,但在我认为必要时,我没有在其他html文件中找到body标记

浏览器“尝试”修复html中的错误,例如从原始html文件自动完成标记

对于你的问题,我有两个可能的答案

1) 浏览器会自动完成头文件中的标记,也会自动完成页脚文件中的标记,因此browsersync在插入重新加载页面所需的反异步脚本标记时会出现问题,因为有两个主体。(如果可能的话)

2) 浏览器在html中找不到body标记,因此浏览器会在之后创建它,但browsersync会将脚本插入html文件中,而不是浏览器中

确保body标记由您自己的代码生成,而不是由浏览器生成


我希望这会有所帮助。

Browsersync通过在主体中注入异步脚本标记来工作,启动项目并检查主体标记。(使用浏览器开发工具)

如果您不能对以下内容进行罚款:
(和browsersync文件),存在问题

我阅读了您的代码,我注意到您在头文件中编写了
(打开标记),在其他页脚文件中编写了
(关闭标记),这让人感到困惑,但在我认为必要时,我没有在其他html文件中找到body标记

浏览器“尝试”修复html中的错误,例如从原始html文件自动完成标记

对于你的问题,我有两个可能的答案

1) 浏览器会自动完成头文件中的标记,也会自动完成页脚文件中的标记,因此browsersync在插入重新加载页面所需的反异步脚本标记时会出现问题,因为有两个主体。(如果可能的话)

2) 浏览器在html中找不到body标记,因此浏览器会在之后创建它,但browsersync会将脚本插入html文件中,而不是浏览器中

确保body标记由您自己的代码生成,而不是由浏览器生成


我希望这能有所帮助。

有点晚了,但如果有人仍在寻找答案,你可以这样做:

var browserSync = require("browser-sync");

browserSync({
    proxy: "wordpress.dev",
    snippetOptions: {
        ignorePaths: "wp-admin/**"
    }
});

有点晚,但如果有人仍在寻找答案,您可以这样做:

var browserSync = require("browser-sync");

browserSync({
    proxy: "wordpress.dev",
    snippetOptions: {
        ignorePaths: "wp-admin/**"
    }
});

非常感谢您的分析!。我会调查你的建议,并告诉你我是否能解决我的问题:)非常感谢你的分析!。我会调查你的建议,并告诉你我是否能解决我的问题:)
var browserSync = require("browser-sync");

browserSync({
    proxy: "wordpress.dev",
    snippetOptions: {
        ignorePaths: "wp-admin/**"
    }
});