我可以让 browsersync 代理不更新特定的 URL 吗?

问题描述 投票:0回答:2

详情:

我为开发创建虚拟主机,例如

http://project.client.dev
,然后使用 browsersync 进行实时重新加载等,这会在
http://localhost:3000
创建代理。这会导致页面上的所有 URL 都写入
http://localhost:3000
,这在 99% 的情况下正是我想要的,但有时我想链接到原始
http://project.client.dev
路径。

问题:

是否可以让 browsersync 仅更新特定的 URL?例如,添加一类

do-not-update
或其他内容,并让它们保持
http://project.client.dev
而不是更新为
http://localhost:3000

用例:

我构建 WordPress 网站。当我点击网站的前端时,我需要那些

http://localhost:300
地址,以便进行实时重新加载。然而,在后端,我不希望这些路径最终出现在数据库中,或者更糟糕的是,在我编辑内容时 browsersync 重新加载我的管理屏幕。通常,我只是使用各自的域在前端打开一个选项卡,在后端打开一个选项卡,但我想在页脚中添加一个正在开发的链接,其中显示“编辑页面 ID 123”并打开当前的页面前端页面向上放到后端进行编辑;问题是,它打开了后端的
http://localhost:3000
版本,我每次都需要手动更新URL(前提是我记得这样做)。

wordpress proxy browser-sync gulp-browser-sync
2个回答
0
投票

我认为目前无法排除某些网址。但请查看文档:https://www.browsersync.io/docs/options


0
投票

正如 Paul 所写的那样,Browsersync 目前似乎没有实现这一目标的选项。

作为一种解决方法,您可能可以使用 JS 片段来回滚浏览器同步 URL 更改匹配某些掩码的 URL。

示例:

const schemeHost    = 'https://yourhost';

document.querySelectorAll( '[href*="//localhost"][href*="wp-admin"]' ).forEach( link => {
  link.setAttribute( 'href', link.getAttribute( 'href' ).replace( /^(?:http:|https:)?\/\/localhost(?::[0-9]+)?/g, schemeHost ) )
} );
© www.soinside.com 2019 - 2024. All rights reserved.