wariofan1 wariofan1 - 4 months ago 9
AngularJS Question

node http-server not serving updated html files

I am building out a front-end web app with angular (mostly ui-router) and doing local development by serving the html files through node http-server. I have noticed that http-server isn't serving my static html files when I make updates, which is challenging to my local development.

I have http-server installed globally with

npm install http-server -g
and start it up by going to the root project folder and running
http-server
. It defaults to localhost:8080- the two ways that seem to work is changing the port number after each update or going through chrome incognito mode.

Is there a way to use http-server normally without having to change the port or using incognito mode?

If it is relevant, I am using MBP v. 10.11.3

Thank you!

Answer

the two ways that seem to work is changing the port number after each update or going through chrome incognito mode.

Your problem is client-side caching. Incognito mode has its own data directory, independent from your normal browsing.

Fortunately, http-server provides a way for you to set the cache control headers.

-c Set cache time (in seconds) for cache-control max-age header, e.g. -c10 for 10 seconds (defaults to '3600'). To disable caching, use -c-1.

It's listed in the documentation here: https://github.com/indexzero/http-server

You can read up on HTTP caching directives here: https://developers.google.com/web/fundamentals/performance/optimizing-content-efficiency/http-caching?hl=en