BrowserSync不能GET /

我只用这个命令安装了NodeJS和BrowserSync:

npm install -g browser-sync 

我用这个命令启动服务器之后:

 C:\xampp\htdocs\browser_sync λ browser-sync start --server [BS] Access URLs: -------------------------------------- Local: http://localhost:3000 External: http://192.168.1.223:3000 -------------------------------------- UI: http://localhost:3001 UI External: http://192.168.1.223:3001 -------------------------------------- [BS] Serving files from: ./ 

我得到以下错误:不能GET /

我很困惑,因为我想用我的Laravel项目使用BrowserSync。

我应该在哪里安装BrowserSync?

谢谢。

使用BrowserSync作为服务器只有在运行静态网站时才有效,所以PHP在这里不起作用。

看起来您正在使用XAMPP来为您的网站提供服务,您可以使用BrowserSync代理您的本地主机。

例:

 browser-sync start --proxy localhost/yoursite 

参考文献:

因为默认情况下它只与index.html一起工作,例如:

 linux@linux-desktop:~/Templates/browsersync-project$ ls brow.html css linux@linux-desktop:~/Templates/browsersync-project$ browser-sync start --server --files '.' 

预期结果:

 Cannot GET/ 

为了在networking浏览器中看到你的静态网页,而不是那个恼人的消息,你必须重命名一个文件brow.htmlindex.html 。 这将解决Cannot GET/问题。

PS在哪里安装浏览器同步并不重要。 只需键入npm install -g browser-sync查看您所在的目录,然后双击browser-sync --version

本文对于让浏览器同步与PHP站点一起工作非常有帮助。

这些是Grunt和Gulp的configuration应该看起来像(从文章中获取)

咕噜

您将需要grunt-php插件

 grunt.loadNpmTasks('grunt-browser-sync'); grunt.loadNpmTasks('grunt-php'); grunt.loadNpmTasks('grunt-contrib-watch'); grunt.initConfig({ watch: { php: { files: ['app/**/*.php'] } }, browserSync: { dev: { bsFiles: { src: 'app/**/*.php' }, options: { proxy: '127.0.0.1:8010', //our PHP server port: 8080, // our new port open: true, watchTask: true } } }, php: { dev: { options: { port: 8010, base: 'path/to/root/folder' } } } }); grunt.registerTask('default', ['php', 'browserSync', 'watch']); 

您将需要gulp-connect-php插件

 // Gulp 3.8 code... differs in 4.0 var gulp = require('gulp'), php = require('gulp-connect-php'), browserSync = require('browser-sync'); var reload = browserSync.reload; gulp.task('php', function() { php.server({ base: 'path/to/root/folder', port: 8010, keepalive: true}); }); gulp.task('browser-sync',['php'], function() { browserSync({ proxy: '127.0.0.1:8010', port: 8080, open: true, notify: false }); }); gulp.task('default', ['browser-sync'], function () { gulp.watch(['build/*.php'], [reload]); }); 

您需要使用代理选项

 browser-sync start --proxy yoursite.dev 

这个if或grunt用户,我知道gulp有不同的设置,有你的本地服务器设置,但是仍然不工作,注释掉或者删除这行

 //server: 'http://localhost/yoursiterootfolder/' 

添加这一行

 proxy: "http://localhost/yoursiterootfolder/" 

更改“yoursite文件夹与您的根文件夹不是主题的实际文件夹,你正在工作的模板文件夹检查出https://browsersync.io/docs/grunt更多细节享受

确保您位于index.html文件所在的目录中。 你最有可能从你的项目的根目录运行该命令,这将不会运行,除非你指定的索引path。

BrowserSync默认只加载静态文件,如果你想使用它来加载一个PHP文件(index.php),你必须启动PHP服务器,然后通过代理选项通过浏览器同步连接到它。

你可以用下面的代码实现这个。 NB:这段代码进入你的webpack.config.js文件。

 var BrowserSyncPlugin = require('browser-sync-webpack-plugin'); var Connect = require('gulp-php-connect'); // we create a serve object which we instantiate in // webpacks plugins scope. var Serve = function(){ Connect.server({ base: './public', port: 9000, keepalive: true }); // return a new instance of browser sync return new BrowserSyncPlugin({ proxy: 'localhost:9000', port: 8080, files: ['public/**/*', 'public/index.php'] }); } 

现在在你的webpackconfiguration文件的插件范围内,你可以实例化我们的服务对象。 注意:我会build议你是最后一个插件。

 plugins: [ ..., new Serve() ] 

我希望这可以帮到你。