mirror of
https://github.com/benbusby/farside.git
synced 2025-04-29 23:20:03 +00:00
Preserve redirect with /_/
path prefix (#13)
This adds a straightforward way of preserving Farside's redirecting behavior in the user's browser history. That way if an instance becomes unavailable between the 5 min scans, the user can opt to navigate back one page and be taken to a new instance. This is accomplished using a single line of JS, and could potentially work as the default behavior of Farside (with the current default behavior requiring a path prefix instead). This should be revisited down the road when more people are using this service.
This commit is contained in:
parent
724a995fd9
commit
932f3bbcab
5 changed files with 34 additions and 0 deletions
|
@ -1,5 +1,6 @@
|
|||
defmodule Farside.Router do
|
||||
@index Application.fetch_env!(:farside, :index)
|
||||
@route Application.fetch_env!(:farside, :route)
|
||||
|
||||
use Plug.Router
|
||||
|
||||
|
@ -24,6 +25,19 @@ defmodule Farside.Router do
|
|||
send_resp(conn, 200, resp)
|
||||
end
|
||||
|
||||
get "/_/:service/*glob" do
|
||||
r_path = String.slice(conn.request_path, 2..-1)
|
||||
|
||||
resp =
|
||||
EEx.eval_file(
|
||||
@route,
|
||||
service: service,
|
||||
instance_url: r_path
|
||||
)
|
||||
|
||||
send_resp(conn, 200, resp)
|
||||
end
|
||||
|
||||
get "/:service/*glob" do
|
||||
path = Enum.join(glob, "/")
|
||||
instance = Farside.pick_instance(service)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue