gpt4 book ai didi

elixir - 如何在路由器之前添加 Elixir/Phoenix 插件?

转载 作者:行者123 更新时间:2023-12-02 05:48:55 25 4
gpt4 key购买 nike

有没有办法在路由器选择 Controller /操作之前插入要运行的插头?我有一个应用程序,它将重定向到特定子域的根路径,无论这些域上的当前路径如何。所以:

sub.myapp.com/foo/bar 应重定向到 sub.myapp.com/

但是,默认情况下,路由器表示没有 /foo/bar 的路径,并且它会停止执行我的插件,这意味着它永远不会命中我的重定向。

有没有办法在路由器选择操作/ Controller 之前插入我的插头?

(注意:我很确定我可以使用 a catch-all route 处理这种情况,但我只是好奇是否有更好的方法。)

最佳答案

您的路由器在 lib/my_app/endpoint.ex 中显式调用。在此之前,您可以在该文件中添加您喜欢的任何插件。

您可以编写一个插件来处理重定向并在调用路由器之前停止连接。

defmodule HelloPhoenix.Endpoint do
use Phoenix.Endpoint, otp_app: :hello_phoenix
plug Plug.RequestId
plug Plug.Logger
...
plug CustomRedirectPlug # Add your plug here
plug HelloPhoenix.Router
end

关于elixir - 如何在路由器之前添加 Elixir/Phoenix 插件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35226024/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com