Size: a a a

2020 May 05

LL

Lama Lover in pro.elixir
Михаил Лёсин
не, там у меня :creo вместо :myapp, это я сюда когда постил поправил
Сейчас я всё расскажу
источник

LL

Lama Lover in pro.elixir
Бага в том, что у тебя не указано значение в конфиге
Типа по Application.get_env(:creo, :static_path) возвращает nil
Плаг думает, что nil - это имя аппы из которой брать значение (а он это делает, если к нему во :from прилетает не строка)
источник

МЛ

Михаил Лёсин... in pro.elixir
да, но в другом месте, эта же строка отрабатывает норм
источник

LL

Lama Lover in pro.elixir
Так что выход такой:
Включить опцию, которая делает init плагов в рантайме
источник

ŹR

Źmićer Rubinštejn in pro.elixir
Не нужен тут рантайм
источник

LL

Lama Lover in pro.elixir
Михаил Лёсин
да, но в другом месте, эта же строка отрабатывает норм
А где ты задаёшь значение по конфигурации
В config/config.exs ? В config/releases.exs ? Или может через провайдер в дистиллери?
источник

МЛ

Михаил Лёсин... in pro.elixir
в апп контроллере написано вот так:
  def index(conn, _params) do
   file = Path.join(Application.get_env(:creo, :static_files), "index.html")
   {:ok, binary} = File.read(file)
   html(conn, binary)
 end
источник

AB

Alex Bubnov in pro.elixir
Źmićer Rubinštejn
Ну или hot code reload
ну это совсем бредовая история.
источник

ŹR

Źmićer Rubinštejn in pro.elixir
Сделай Application.compile_env и задай третьим дефолтный параметр
источник

AB

Alex Bubnov in pro.elixir
Михаил Лёсин
в апп контроллере написано вот так:
  def index(conn, _params) do
   file = Path.join(Application.get_env(:creo, :static_files), "index.html")
   {:ok, binary} = File.read(file)
   html(conn, binary)
 end
это выполняется в рантайме, а параметр Plug.Static - в компайлтайме.
источник

AB

Alex Bubnov in pro.elixir
Lama Lover
Так что выход такой:
Включить опцию, которая делает init плагов в рантайме
+1
источник

ŹR

Źmićer Rubinštejn in pro.elixir
Alex Bubnov
ну это совсем бредовая история.
Согласен - бред. Но то что мне придётся менять этот параметр во время работы программы - тоже бред
источник

МЛ

Михаил Лёсин... in pro.elixir
был в config/releases.exs но если компайл его надо двинуть в prod.exs я так понимаю
источник

AB

Alex Bubnov in pro.elixir
Михаил Лёсин
был в config/releases.exs но если компайл его надо двинуть в prod.exs я так понимаю
dev
источник

МЛ

Михаил Лёсин... in pro.elixir
и в дев тоже
источник

AB

Alex Bubnov in pro.elixir
Źmićer Rubinštejn
Согласен - бред. Но то что мне придётся менять этот параметр во время работы программы - тоже бред
нет, конечно
источник

LL

Lama Lover in pro.elixir
Михаил Лёсин
был в config/releases.exs но если компайл его надо двинуть в prod.exs я так понимаю
Вот именно
Суть в том, что config/releases.exs применяется после компиляции
А по дефолту init всех плагов происходит во время компиляции
источник

МЛ

Михаил Лёсин... in pro.elixir
понял, ща попробую
источник

AB

Alex Bubnov in pro.elixir
откуда сервить статику или аплоады - это свойство среды, оно не может быть запечено в приложении
источник

AB

Alex Bubnov in pro.elixir
ну то есть, у нас опять стандартная ситуация - я утверждаю, что авторы Plug/Phoenix/Ecto/... думали жопой, а @Virviil утверждает, что мои юзкейсы бредовые 😆
источник