不能GET /与gulp-connect-php

时间:2017-03-10 12:41:08

标签: javascript php node.js gulp

我正在使用gulp-connect-php尝试使用BrowserSync在本地运行php服务器。这是我的gulp配置文件:

var gulp = require('gulp'),
    connect = require('gulp-connect-php'),
    browserSync = require('browser-sync');

gulp.task('connect-sync', function() {
  connect.server({}, function (){
    browserSync({
        server: {
            baseDir: "app"
        },
     // proxy: '127.0.0.1:8000'
    });
  });

  gulp.watch('**/*.php').on('change', function () {
    browserSync.reload();
  });
});

gulp.task( 'default', [ 'connect-sync' ] )

当我在app目录中有一个index.html文件时,上面的代码有效,但当我用index.php文件替换它时,我得到以下消息:

  

无法获取/

不完全确定我在这里做错了什么?

2 个答案:

答案 0 :(得分:1)

我从你的问题中理解的是,php服务器无法识别.php文件。有两种方法可以完成这项工作。

Apache(httpd.conf),搜索DirectoryIndex并用此替换该行(仅在启用dir_module时才有效,但在大多数安装时都是默认值)或添加index.php

 DirectoryIndex index.php index.phtml index.html index.htm

或 在Web根目录中创建.htaccess文件。 添加行...

DirectoryIndex index.php

希望这有帮助!

答案 1 :(得分:1)

您需要声明索引文件名,并将index对象添加到server

...
browserSync({
    server: {
        baseDir: "app",
        index: "/index.php"
    },
});
...

你也可以将browserSync startpage设置为/index.php而不是/ 修改我无法使用startPath,因此请使用上面示例中的index

...
browserSync({
    server: {
        baseDir: "app"
    },
    startPath: "/index.php"
});
...

@ pramod-patil我不认为Apache方向会对此有所帮助,因为browserSync不使用Apache来提供PHP服务。