Comments (5)
For now, I'm on go 1.5.2, the solution is (without the ServeHTTP
)
router.NotFound = http.FileServer(http.Dir("web/"))
from httprouter.
This is what worked for me:
This is how I got it working:
func main() {
router := httprouter.New()
router.GET("/", Index)
router.ServeFiles("/static/*filepath",http.Dir("static"))
log.Fatal(http.ListenAndServe(":3001", router))
}
from httprouter.
Ok i think I solved it.
I am using the http.FileServer as the NotFound method for the router:
router.NotFound = http.FileServer(http.Dir("web/")).ServeHTTP
I pass the ServeHTTP func reference as it implements the HandlerFunc interface.
Maybe this should be documented for other users who may be looking for a similar solution?
from httprouter.
An example (the commented line is a way with the standard lib, second line with httprouter.):
router := httprouter.New()
http.Handle("/", router)
//http.Handle("/client/static/", http.StripPrefix("/client/static/", http.FileServer(http.Dir("client/static/"))))
router.ServeFiles("/client/static/*filepath", http.Dir("client/static/"))
from httprouter.
Ok but what I am looking for is:
http.Handle("/", http.FileServer(http.Dir("web/")))
That will still allow me to have an api of:
http.Handle("/api/forms/documents", http.HandlerFunc(Documents))
...
from httprouter.
Related Issues (20)
- How to use this custom middleware HOT 1
- Matching multiple named parameters HOT 1
- ServeFiles not able to serve static files HOT 2
- How can I receive multiple parameters in GET request? HOT 3
- Is it possible to bind one router to some path in another router? HOT 2
- is it possible to get the registered path? HOT 7
- panic: '/hello/:name' in new path '/hello/:name' conflicts with existing wildcar
- Why make catchAll form so special HOT 2
- httprouter.ParamsWithContext(r.Context()) is returning []
- Question: will re-registering a handler work properly?
- Fails with "embed" package HOT 1
- Dump all registered routes HOT 3
- Improve longestCommonPrefix and add unit tests HOT 1
- Question: How can I embed swagger UI? HOT 2
- Feature Request: Support multi-wildcard names for same tree branch HOT 1
- panic: path must begin with '/' in path 'GET'
- List all registered endpoint httprouter
- what is the empty path node used for? HOT 1
- Unable to load jsx files because "file.jsx was blocked because of a disallowed MIME type text/plain" HOT 2
- Plan to Consolidate with net/http @ 1.22?
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from httprouter.