2015-05-21 75 views

回答

2

在您的瀏覽器同步選項中,傳遞startPath以使其在不同的URL上啓動「/」。

這並不會改變您的服務器所提供的服務,只有BrowserSync將啓動的路徑。

http://www.browsersync.io/docs/options/#option-startPath

+1

謝謝,我想它解決了一半的問題。剩下的一半是讓BrowserSync以與startPath相同的路徑提供應用程序。 –

+0

@MartinStålberg你是否曾經能夠解決這個問題的後半部分? –

+0

@JonHarding,不幸的是我無法解決它。 –

0

+1對此。

對於我的測試服務器我使用一飲而盡,web服務器:

gulp.src('./public') 
    .pipe(webserver({ 
     host: 'localhost', 
     port: '8000', 
     path: '/myapp', 
     fallback: 'index.html' 
     directoryListing: false, 
     https: true 
    })) 

然後我從

https://localhost:8000/myapp/view

訪問應用程序,但是當我使用Browsersync用於開發模式我一定要使用

https://localhost:9000/view

這將是非常高興讓它是相同的,那麼也許我會停止使用gulp網絡服務器。

2

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和空字符串)將不起作用。

上面的代碼片段是一個可用的gulp文件,並針對Browsersync v2.18.5和gulp v3.9.1進行了測試。這是complete gist

1

似乎該選項不可用。 startPath只會改變瀏覽器同步打開哪個URL。

我終於想出了一個簡單的解決方案:

只需創建從some/multi/level/path目錄的符號鏈接your app files。然後去localhost:9000/some/multi/level/path將提供相同的文件作爲去localhost:9000