При доступе к WordPress через BrowserSync с использованием внешнего URL-адреса он перенаправляется на локальный хост - PullRequest
0 голосов
/ 24 сентября 2018

Я работаю на сайте WordPress из моей локальной системы и использую Gulp с Browsersync для автоматического обновления моего браузера при внесении изменений.Для этого я использую прокси на моем локальном сервере Apache.

Это нормально работает с моей локальной машины, но когда я пытаюсь получить доступ к сайту с внешнего URL, у меня возникает проблема.Я могу нормально получить доступ к домашней странице через внешний URL, но когда я затем нажимаю на любую ссылку, она перенаправляет на localhost, хотя href указывает на внешний URL.

Я знаю, что WordPress всегда предоставляет полный URLи это может привести к тому, что ссылка пропустит браузерную синхронизацию, но чтобы этого не произошло, я настроил WP_HOME и WP_SITEURL, чтобы они указывали на порт 3000, который прослушивает BrowserSync.

define( 'WP_HOME', 'http://flare-dev.local:3000' );
define('WP_SITEURL','http://flare-dev.local:3000' );

Вот моя настройка browsersync: Соответствующийразделы в 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, но ничто не меняет это поведение,Любая помощь будет высоко ценится!

1 Ответ

0 голосов
/ 15 августа 2019

Возможно, вы работаете на 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();
}

Покойтесь, вы знаете, используйте перезагрузку с gulp.watch.например, gulp.watch('**/*.php', reload);

...