gulp-webserver
gulp-webserver copied to clipboard
Cannot GET html & gulp.src location ignored.
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:
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
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.
Also having this problem :(
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:
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.
@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({...}));
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
.
related to #14. Just removing the directoryListing option fix the root for me.
But this will only solve to serve content from the root, not if you specify a specific path
+1
Using gulp.src('./')
solved my problem about getting files content.
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
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'
)
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?
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.
As @cedriceberhardt mentioned, using gulp.src('./')
works. Apparently, this points to root rather than gulp.src('root')
I have tried all of this solutions and none of them works for me. Whatever I do I get Cannot Get
Any progress on this? gulp-webserver is useless without this working.
changing my settings from
directoryListing: true
to
directoryListing: {
enable: true,
path: 'app'
}
works for me
> 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
Removed directoryListing completely and it now opens index.html automatically.
gulp.src("build")
.pipe(webserver({
livereload: true,
fallback: "index.html",
port: 8080,
open: true
}));
@frontools solution works :+1:
This worked for me. Set open to the complete path rather than true
open: 'http://localhost:8000/index.html'
@itsmhuang Thanks!!
@itsmhuang Thanks!!
http://localhost:8000/#!/home