wordpress - 当使用外部 url 通过 BrowserSync 访问 WordPress 时,它会重定向到 localhost
问题描述
我正在本地系统上的 WordPress 网站上工作,并使用 Gulp 和 Browsersync 来自动刷新浏览器的更改。为此,我使用本地 Apache 服务器的代理。
这在我的本地机器上运行良好,但是当我尝试从外部 url 访问该站点时,我遇到了问题。我可以通过外部 url 很好地访问主页,但是当我点击任何链接时,即使 href 指向外部 url,它也会重定向到 localhost。
我知道 WordPress 总是提供完整的 url,这可能会导致链接绕过 browsersync,但为了确保不会发生这种情况,我已将 WP_HOME 和 WP_SITEURL 配置为指向 BrowserSync 侦听的端口 3000。
define( 'WP_HOME', 'http://flare-dev.local:3000' );
define('WP_SITEURL','http://flare-dev.local:3000' );
这是我的浏览器同步设置:gulpfile.js 中的相关部分
var browserSync = require( 'browser-sync' ).create();
var cfg = require( './gulpconfig.json' );
gulp.task( 'browser-sync', function() {
browserSync.init( cfg.browserSyncWatchFiles, cfg.browserSyncOptions );
} );
gulpconfig.json 中的相关部分:
"browserSyncOptions" : {
"proxy": {
"target": "localhost:80/"
},
"notify": false,
"open": false,
"host": "flare-dev.local",
"port": 3000
},
"browserSyncWatchFiles" : [
"./css/*.min.css",
"./js/*.min.js",
"./**/*.php"
]
我在 BrowserSyncOptions 中为代理、中间件和 rewriteRules 尝试了多种不同的设置,但没有任何改变这种行为。任何帮助将非常感激!
解决方案
可能您正在 localhost:80 上运行并且您没有使用正确的代理 url。不要写 localhost:80/yoursite 而是只写 localhost/yoursite
browserSync.init({
proxy: {
target: "http://localhost/yoursite/"
}
});
Rest you know, use reload with gulp.watch.
export const reload = (done) => {
browserSync.reload();
done();
}
休息一下,使用 reload 和 gulp.watch。例如
gulp.watch('**/*.php', reload);
推荐阅读
- c# - 突出显示 ListView 行而不重新绑定或将样式应用于该行
- python - GEKKO - 如何修复 Python Gekko Max Equation 错误 - 元素数
- pine-script - 如何修改系列的情节?
- json - 如何使用 JSON HAL
- visual-studio-code - NextCloudPi 上的 VSCode 远程调试无法正常工作,因为 SSH 连接失败
- twig - 出于 SEO 目的,将 RAW ACF 值放在树枝/木材中的页面标题中
- spring - Spring WebFlux - 如何使用 WebClient 将响应打印为字符串而不是对象
- java - 在java的exec上关闭流的正确方法是什么?
- tradestation - 带有 easylenguage 的彩条 (TradeStation) 如何将代码限制为仅适用于最新的 30 条条?
- javascript - 如何使用 DOM html 操作切换开关