Ответ 1
В настройках браузера параметры передаются в startPath
, чтобы начать с другого URL-адреса, который '/'.
Это не изменяет то, что ваш сервер обслуживает только путь, с которого начинается BrowserSync.
Я использую Gulp и BrowserSync для обслуживания моего webapp в localhost:9000
.
Как я могу использовать webapp вместо localhost:9000/some/multi/level/path
?
В настройках браузера параметры передаются в startPath
, чтобы начать с другого URL-адреса, который '/'.
Это не изменяет то, что ваш сервер обслуживает только путь, с которого начинается BrowserSync.
Статический сервер Browsersync может быть настроен для обслуживания страниц из любого произвольного подпути. При инициализации статического сервера Browsersync добавьте определение маршрута, где ключ является фрагментом url для соответствия, и значение является каталогом, который будет обслуживаться (путь должен относиться к текущему рабочему каталогу).
Попробуйте что-то вроде этого:
var gulp = require('gulp');
var browsersync = require('browser-sync').create();
gulp.task('watch', function() {
browsersync.init({
files: './*.html',
startPath: '/some/multi/level/path',
server: {
baseDir: '-',
routes: {
'/some/multi/level/path': '.'
}
}
});
});
Запуск gulp watch
запустит Browsersync и откроет страницу с содержимым ./
, отображаемым на url http://localhost:3000/some/multi/level/path
.
baseDir
должен быть установлен на непустую строку и не должен быть допустимым путем. Значения Falsey (null
, false
и пустые строки) не будут работать.
Фрагмент выше - рабочий файл gulpfile и был протестирован против Browsersync v2.18.5 и gulp v3.9.1. Здесь полный текст.
Кажется, опция недоступна.
startPath
изменит только тот URL, который открывается браузером.
Наконец я придумал простое решение:
Просто создайте символическую ссылку из каталога some/multi/level/path
на your app files
. Затем, перейдя в localhost:9000/some/multi/level/path
, вы получите те же файлы, что и для localhost:9000
+1.
Для моего тестового сервера я использую gulp -webserver:
gulp.src('./public')
.pipe(webserver({
host: 'localhost',
port: '8000',
path: '/myapp',
fallback: 'index.html'
directoryListing: false,
https: true
}))
Затем я получаю доступ к приложению из
https://localhost:8000/myapp/view
но когда я использую Browsersync для режима dev, я должен использовать
https://localhost:9000/view
Было бы здорово, если бы это было одно и то же, тогда, возможно, я прекратил бы использовать gulp -webserver.