Laravel BrowserSync без прокси

Я пытаюсь использовать Elixir BrowserSync, одну из новейших функций Laravel.

Я добавил его в файл gulp

elixir(function(mix) {
mix.sass('app.scss')
.browserSync();
});

когда я запускаю «gulp watch», выводится это сообщение

[20:49:20] Using gulpfile ~/Desktop/laravel/gulpfile.js
[20:49:20] Starting 'watch'...
[20:49:20] Finished 'watch' after 11 ms
[BS] Proxying: http://homestead.app
[BS] Access URLs:
----------------------------------
Local: http://localhost:3000
External: http://10.9.0.48:3000

Автоматически запускается браузер с URL HTTP: // локальный: 3000 но ничего не загружается.

Я думаю, что проблема связана с этой строкой:
[BS] Прокси: http://homestead.app

1

Решение

Вы управляете множеством приусадебных участков? Похоже, что по умолчанию используется прокси через hometead.app, если вы не включили настройку прокси. Если вы не разместите свой сайт на hometead.app, он не найдет его.

Пытаться

.browserSync ({proxy: ‘domain.app’});

Где domain.app — это то, чем вы обслуживаете сайт.

1

Другие решения

Вы можете, если вы используете сервер BrowserSyncs.

mix.browserSync({
proxy: false,
server: {
baseDir: './'
}
});
3

Прямой ответ на ваш вопрос — не возможно не прокси .browserSync, Длинный боковой ответ — вы все еще можете использовать реализацию эликсира browserSync в gulp, но у вас должен быть отдельный сервер PHP для интерпретации файлов.


Редактировать: Я нашел способ не использовать прокси, предоставляя скрипт на страницах вручную (не давая никаких аргументов в .browserSync() звони, но не помнишь где и как это сделать точно.


Причина в том, что browserSync запрашивает все данные с сервера для вас, добавляет небольшой слушатель JavaScript и отображает все остальное:

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

Одним из способов является php artisan serve --host=0.0.0.0 в отдельном терминале, чтобы запустить сервер, а затем использовать .browserSync({proxy: 'localhost:8000'}), Все работает — интерфейс BrowserSync и все вызовы для обновления страниц.

Замечания: Я не мог подключиться к artisan serve без --host=0.0.0.0,


Для тех, кто хочет полностью автоматизированное решение с помощью gulp, вот:

Используйте пакеты глотка gulp-connect-php а также laravel-elixir-browsersync2, Первый пускает php artisan serve а другой соединяет его с browserSync,

  1. Установите пакеты:

    • npm install laravel-elixir-browsersync2 --save-dev

    • npm install gulp-connect-php --save-dev

  2. Добавьте необходимые строки в ваш gulpfile.js:

Код:

var elixir = require('laravel-elixir'),
gulp = require('gulp');
var connectPHP = require('gulp-connect-php');
var BrowserSync = require('laravel-elixir-browsersync2');

elixir(function(mix) {
mix.sass('app.scss');
});

elixir(function(mix) {
connectPHP.server({
base: './public',
hostname: '0.0.0.0',
port: 8000
});
BrowserSync.init();
mix.BrowserSync(
{
proxy: 'localhost:8000',
logPrefix       : "Laravel Eixir BrowserSync",
logConnections  : false,
reloadOnRestart : false,
notify          : false
});
});
  1. Тогда — просто gulp,

Отказ от ответственности: Это может не работать с gulp watch, но могут быть люди с ответом на это.

Также есть линия PHP server not started. Retrying... перед [Laravel Eixir BrowserSync] Proxying: http://localhost:8000, Это принадлежит gulp-connect-php при попытке проверить, работает ли сервер.

1

Я нашел другое решение на Laracast для Bloomanity, и оно работает со мной, как шарм!
$ php artisan serve --host=0
а затем в свой глоток добавить:
mix.browserSync({proxy: 'localhost:8000'});

0
По вопросам рекламы ammmcru@yandex.ru
Adblock
detector