Reputation: 5161
I have created a basic AngularJS app in node environment. I am using http-server module for serving the files to browser. Everything is working fine except for the fact that I can't get to serve index.html
by default when the server launches.
I checked out npm registry for more options to http server module, and also tried looking for a relevant question on SO but still not able to get what I desire.
Is it possible at all to specify the file to pick up while server starts.
My server basically starts at localhost:8080
while I would like localhost:8080/index.html
My start script is http-server -a localhost -p 8080 -c-1
. If I do something like http-server -a localhost -p 8080 -c-1 index.html
, to my surprise it opens the index.html
file but serves it on file protocol and not on localhost
.
What am I doing wrong here.
P.S. I visited Angular JS seed and there official example says http-server -a localhost -p 8080 -c-1 ./app
. However, when I do this I get error Windows can't find specified path, although my structure is similar to the seed.
My structure:
dir
--app.js
--index.html
--node_modules
--package.json
Upvotes: 13
Views: 38376
Reputation: 41
If you're using the http-server
package from npmjs, there is a way to have a catch-all redirect to itself again for SPAs like Angular: https://www.npmjs.com/package/http-server#catch-all-redirect
Upvotes: 0
Reputation: 1464
For me what solved the problem was, I clicked the link through the CLI after doing http-server [path]
.
In my case I ran http-server .
(which has an index.html
in the directory), then logs out this.
Starting up http-server, serving .
http-server version: 14.1.1
http-server settings:
CORS: disabled
Cache: 3600 seconds
Connection Timeout: 120 seconds
Directory Listings: visible
AutoIndex: visible
Serve GZIP Files: false
Serve Brotli Files: false
Default File Extension: none
Available on:
http://192.168.8.133:8080
http://127.0.0.1:8080
http://172.23.128.1:8080
Hit CTRL-C to stop the server
Now I just used the link in the line below Available on:
which is:
Such a weird behaviour of http-server
.
Upvotes: 0
Reputation: 3087
Try to put you static file inside a new directory public. and run you server http-server
- app.js
-public
--index.html
-package.json
Upvotes: -1
Reputation: 137
Add a -f /index.html
or whatever the document is.
In my case for example:
http-server -c-1 -f /index.html
Upvotes: 1
Reputation: 335
Make sure you are building your project first and generating an output ./dist
folder or similar.
Then try this command instead:
http-server -p 8080 ./dist -o http://localhost:8080/index.html
You are missing the http://
in your url.
Upvotes: 7