Comments (11)
Digging into this a little more, it seems any route using the 'match any' wildcard has stopped working (e.g. "/somepath/param"). The Static handler adds the "/" part to the route.
from echo.
Did you try with the latest code? I tried to fix it.
from echo.
Looks like that fixed it - many thanks !! ๐
Not sure if this is a related issue or I'm just using it wrong but I noticed that the following works ok:
api.Get("/folders", folders)
api.Get("/folders/*", folder)
... but if the first path has a trailing slash then it causes an error, i.e.
api.Get("/folders/", folders)
api.Get("/folders/*", folder)
2015/05/01 11:52:28 http: panic serving [::1]:54452: runtime error: slice bounds out of range
goroutine 34 [running]:
net/http.funcยท011()
/usr/local/go/src/net/http/server.go:1130 +0xbb
github.com/labstack/echo.(*router).Find(0xc20800a460, 0xc208108000, 0x3, 0xc208108004, 0xb, 0xc208040410, 0xc20800a9d0, 0xc20805c000)
/go/src/github.com/labstack/echo/router.go:239 +0x214
github.com/labstack/echo.(*Echo).ServeHTTP(0xc20805c000, 0x76f670, 0xc2081500a0, 0xc208106750)
/go/src/github.com/labstack/echo/echo.go:296 +0xd0
net/http.serverHandler.ServeHTTP(0xc208070a80, 0x76f670, 0xc2081500a0, 0xc208106750)
/usr/local/go/src/net/http/server.go:1703 +0x19a
net/http.(*conn).serve(0xc208150460)
/usr/local/go/src/net/http/server.go:1204 +0xb57
created by net/http.(*Server).Serve
/usr/local/go/src/net/http/server.go:1751 +0x35e
I'm totally fine using the 1st version, just an FYI if that wasn't intended or someone else runs into the same thing or it needs to be mentioned in the docs.
from echo.
BTW: The reason for having the trailing slash is simply convenience as it's the angular default. so it saves having to add $resourceProvider.defaults.stripTrailingSlashes = true;
in the client code.
from echo.
I am aware of the problem and that's the reason issue is still open. Thanks for your input, I will work on it at next opportunity.
from echo.
Thanks @vishr - really love this package (after trying every golang web framework, LOL) so let me know whenever you need me to test anything out.
I also discovered that the NotFoundHandler
doesn't seem to be working right too - the overridden handler never gets called (returns '404 page not found' no matter what) and if the request doesn't contain a '/' then it causes a panic.
from echo.
@CaptainCodeman Cool
from echo.
fcbdaae
@CaptainCodeman Fixed routes you mentioned in the example. Custom not found handler test passes. FYI http://labstack.github.io/echo/guide/#customization, the custom not found handler is only called by router incase it doesn't find any matching path. I am still working on providing an option to strip trailing slash.
from echo.
Thanks @vishr - I'll try it out and report back
from echo.
All seems to be working great ๐
from echo.
from echo.
Related Issues (20)
- Remove default charset from 'application/json' Content-Type header
- echo v4 websocket client closed, program exited HOT 3
- router not setting ContextKeyHeaderAllow for group, causing cors preflight to not work HOT 6
- Static file has wrong body returned when using a custom HTTP Error Handler and complex paths HOT 2
- QueryParams seem to override formValues HOT 3
- DefaultHTTPErrorHandler does not log HOT 3
- Support Casbin Authorization Middleware HOT 1
- Echo response object calls flush on unflushable objects HOT 7
- Feature request: support Yaml responses transparently. HOT 1
- static middleware: path ist unescaped twice for file names, leading to not downloadable content
- CSRF middleware form lookup consumes all the request body HOT 1
- Question: How can I serve content from static HTML files using URLs that have no '.html' extension HOT 5
- Omitempty in form HOT 1
- Return error if reverse() does not find a match HOT 9
- How to read a path param with echo that can contain slashes? HOT 3
- Unclear behaviour of `*` in routes HOT 7
- middleware.CORSConfig can not be configured per path HOT 2
- Is there any plan to facilitate responses in the Protobuf data format? HOT 2
- When `c.bind()` fails with a type error on POST'd form data the `inputfieldname` is not available HOT 3
- Using static middleware, does not raise handler at '/*' path HOT 13
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 echo.