0f493e9b47
This PR solves the issue of there being both "<url>/" and "<url>" paths, that in the builder-web context shouldn't mean different things. The slashes are now removed using a `Dream` middleware, and the request is redirected using a permanent redirect (that doesn't change the method used): https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Location Notable changes: * Trailing slashes from the hardcoded link urls were removed, as unneccesary redirects are then avoided. * All links in `Views` were rewritten to be absolute instead of relative. * As `Dream` deprecated `path` - `Utils.Path` was created containing some helpers for manipulating paths. *Note that `String.split_on_char` has a different semantics.* * A blacklist `routeprefix_blacklist_when_removing_trailing_slash` was added, containing `Dream` route-prefixes to ignore. * Only `GET` and `HEAD` requests are redirected. * `redirect_parent` helper was rewritten using new `Utils.Path` functions to avoid brittle string manipulation + fixed the edgecase of redirecting to `/`. * Added `Uri` dependency to make URL manipulation safer. Co-authored-by: rand00 <oth.rand@gmail.com> Co-authored-by: Reynir Björnsson <reynir@reynir.dk> Reviewed-on: https://git.robur.io/robur/builder-web/pulls/80 Co-authored-by: rand <rand@r7p5.earth> Co-committed-by: rand <rand@r7p5.earth>
10 lines
171 B
Text
10 lines
171 B
Text
(library
|
|
(name builder_web)
|
|
(libraries
|
|
builder builder_db
|
|
dream tyxml bos duration hex caqti-lwt
|
|
opamdiff ptime.clock.os omd tar
|
|
owee
|
|
solo5-elftool
|
|
uri
|
|
))
|