schickling / gulp-webserver

Streaming gulp plugin to run a local webserver with LiveReload
https://www.npmjs.org/package/gulp-webserver
MIT License
355 stars 84 forks source link

Cannot GET html & gulp.src location ignored. #26

Open Melonbwead opened 10 years ago

Melonbwead commented 10 years ago

This is my gulp webserver task:

gulp   = require "gulp"
$      = do require "gulp-load-plugins"
gulp.task "webserver", ->
  gulp.src "dist"
    .pipe $.webserver(
      directoryListing : true
      host             : "0.0.0.0"
      port             : 9000
    )

When i open up http://127.0.0.1:9000/ it ignores the the gulp.src location i've set and uses the root of the folder. But i can see files being listed: listing_directory__

If i click into a index.html for example inside the dist folder. i get this message on the page. Cannot GET /dist/index.html

hinok commented 10 years ago

We have exactly the same problem! It's weird cause when I run only one task:

gulp webserver

The server works, but with multiple tasks is broken. 0.5.0 works like a charm.

robbiet480 commented 10 years ago

Also having this problem :(

schickling commented 10 years ago

Sorry guys this is related to this PR: https://github.com/schickling/gulp-webserver/pull/5

I try to fix it as soon as I get the chance. Please feel free to commit a PR on your own to solve this problem. :+1:

MCTaylor17 commented 10 years ago

I ran into this problem with gulp-connect which is how I found this project. The fact that I have the exact same problem with both makes me think the issue is with a setting on my computer.

I tried 0.5.0 based on Hinok's comment but no luck.

Definitely looking forward to solving this one.

davejlong commented 10 years ago

@schickling I was trying to fix this issue and was wondering, how should this function when you pass an array of paths or glob to the gulp.src?

For example, if I have:

gulp.src(['dist', 'coverage']).pipe(webserver({...}));
davejlong commented 10 years ago

Just a note, by simply moving the line

if (config.directoryListing.enable) {
    app.use(serveIndex(path.resolve(config.directoryListing.path), config.directoryListing.options));
}

Inside the through.obj function argument and changing config.directoryListing.path to file.path, will make it so the directory listing sort of works. It only shows the first path for an array of files in gulp.src.

MoOx commented 10 years ago

related to #14. Just removing the directoryListing option fix the root for me.

elmarkou commented 10 years ago

But this will only solve to serve content from the root, not if you specify a specific path

agross commented 9 years ago

+1

cedeber commented 9 years ago

Using gulp.src('./') solved my problem about getting files content.

animabear commented 9 years ago

#5 solve this problem. Using this setting:

directoryListing: {
    enable:true,
    path: 'app'
}
thescientist13 commented 9 years ago

I ran into this issue working on my second or third gulp project on my machine. The last two projects I've started exhibit this issue, while the very first one still works. I've even tried copy pasting in the code and I still get the issue of the 404 and the src being the root of my projects. Changing ports doesn't make it work.

However, as @hinok mentioned, just running the webserver task standalone does work

scottyantipa commented 9 years ago

I fixed this issue with the following gulp task.

gulp.task 'webserver', ->
  gulp.src 'public'
    .pipe webserver(
      fallback:   'index.html' # gulp-webserver needs this for html5
      livereload: true
      open:       true
      directoryListing:
        enable: true
        path:   'public'
      )
moneytree-doug commented 9 years ago

My public and dist folder are siblings, so I am trying to serve the root directory, but I keep getting a CANNOT GET public/index.html error.

gulp.task('webserver', function() {
  gulp.src('root')
    .pipe(webserver({
        open: true,
        fallback:   'index.html',
        livereload: true,
        directoryListing: {
            enable: true,
            path: 'example'
        }
    }));
});

However, I can serve my public folder properly when my src is public, but I won't be able to reference my JavaScript in my dist folder. Any suggestions?

bialikover commented 9 years ago

Note to consider... when you set directoryListing: true renders only the root directory, regardless of the src path you specify in gulp.src('whateverPathYouChoose') so I had to specify an object to make it work properly and render my static files correctly.

something like this:

directoryListing: {
        enable: true,
        path: 'example'
},

You may want to include that in the readme, and provide a better explanation.

mii9000 commented 9 years ago

As @cedriceberhardt mentioned, using gulp.src('./') works. Apparently, this points to root rather than gulp.src('root')

TeodorKolev commented 9 years ago

I have tried all of this solutions and none of them works for me. Whatever I do I get Cannot Get

toymachiner62 commented 8 years ago

Any progress on this? gulp-webserver is useless without this working.

konekoya commented 8 years ago

changing my settings from

directoryListing: true

to

directoryListing: {
  enable: true,
  path: 'app'
}

works for me

scoutrul commented 8 years ago
> gulp.src('./app')
>     .pipe(server({
>         open: true,
>         fallback: 'index.html',
>         livereload: true,
>         directoryListing: {
>                 enable: true,
>                 path: './app'
> }

now this working for me except one problem - index.html doesn't open automaticly

itsmhuang commented 8 years ago

Removed directoryListing completely and it now opens index.html automatically.

gulp.src("build")
    .pipe(webserver({
        livereload: true,
        fallback: "index.html",
        port: 8080,
        open: true
    }));
atais commented 7 years ago

@frontools solution works :+1:

codemansam commented 7 years ago

This worked for me. Set open to the complete path rather than true

    open: 'http://localhost:8000/index.html'
rafaelblink commented 7 years ago

@itsmhuang Thanks!!

JonyBlack commented 7 years ago

@itsmhuang Thanks!! http://localhost:8000/#!/home