에 check_origin 설정피닉스 프레임 워크 웹 소켓, 나는 릴리스 관리자로 exrm 사용하고 런타임
나는 내가 런타임에 환경 변수 'check_origin'
config :my_app, check_origin: "${CHECK_ORIGIN}"
을 retreive 수 있습니다 내 prod.exs의 설정을 추가 한
문제는 웹 소켓 그래서 나는 같은 것을 할 수 없습니다
transport :websocket, Phoenix.Transports.WebSocket
로 컴파일시에 구성되어 있다는 것입니다 :
transport :websocket, Phoenix.Transports.WebSocket, check_origin: Application.get_env(:my_app, :check_origin) |> Poison.decode!
내가 런타임에 웹 소켓의 전송을 구성하는 방법
사람이 알고 있나요, 그래서
편집 (인코딩 된 JSON 인) 환경 변수를 사용할 수 있습니다
다음내가 이미 시도 무엇을 :
def start(_type, _args) do
import Supervisor.Spec, warn: false
c_o = ((Application.get_env(:my_app, :check_origin) || "true") |> Poison.decode!)
Application.put_env(:my_app, MyApp.Endpoint, Application.get_env(:my_app, MyApp.Endpoint) ++ [check_origin: c_o])
......
Distillery에는 사용자가 설정할 수있는'REPLACE_OS_VARS = true' 환경 변수가 있으며 시작시 구성에서 환경 변수를 대체합니다. exrm에서 비슷한 것을 찾고자 시도했는데 (RELX_REPLACE_OS_VARS라고 부르는 것 같습니다) : https://github.com/bitwalker/exrm/blob/417286f13aebb4a19bee39bfdb4cd44b41d18f5f/priv/rel/files/boot – Lachezar
넵 , 시작시 ... 내 문제는 websocket의 전송 설정이 컴파일시 ... – TheSquad