我正在使用Gulp和BrowserSync在localhost:9000
处投放我的webapp
我如何在localhost:9000/some/multi/level/path
处提供webapp?
答案 0 :(得分:5)
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
将启动浏览器同步并打开一个页面,其中./
的内容显示在网址http://localhost:3000/some/multi/level/path
上。
baseDir
必须设置为非空字符串,并且不需要是有效路径。虚假值(null
,false
和空字符串)无法正常工作。
上面的代码片段是一个工作gulp文件,并针对Browsersync v2.18.5和gulp v3.9.1进行了测试。这是complete gist。
答案 1 :(得分:2)
在您的browsersync选项中,传递startPath
以使其以'/'的其他网址开头。
这不会改变您的服务器仅服务于BrowserSync将开始的路径。
答案 2 :(得分:1)
似乎该选项不可用。
startPath
只会更改browsersync打开的URL。
我终于提出了一个简单的解决方案:
只需创建从some/multi/level/path
目录到your app files
的符号链接。然后转到localhost:9000/some/multi/level/path
将提供与转到localhost:9000
答案 3 :(得分:0)
+1。
对于我的测试服务器,我使用的是gulp-webserver:
Id movie_id available_for price
1 1 rent $2.50
2 1 purchase $15.45
然后我从
访问该应用 gulp.src('./public')
.pipe(webserver({
host: 'localhost',
port: '8000',
path: '/myapp',
fallback: 'index.html'
directoryListing: false,
https: true
}))
但是当我使用Browsersync进行开发模式时,我必须使用
https://localhost:8000/myapp/view
让它变得相同真的很好,那么也许我会停止使用gulp-webserver。