Size: a a a

Clojure — русскоговорящее сообщество

2020 June 08

AB

Alex Bubnov in Clojure — русскоговорящее сообщество
Kostyantin Randomname
есть такая штука как window.location.hostname
Так он вообще никакого отношения к вопросу "отделить base URL" не имеет
источник

KR

Kostyantin Randomnam... in Clojure — русскоговорящее сообщество
бейз урл это основа над которой вы хотите надстраивать взаимодействие с апи?
источник

AB

Alex Bubnov in Clojure — русскоговорящее сообщество
Kostyantin Randomname
бейз урл это основа над которой вы хотите надстраивать взаимодействие с апи?
А апи может быть вообще где угодно, это отдельный вопрос
источник

KR

Kostyantin Randomnam... in Clojure — русскоговорящее сообщество
Alex Bubnov
А апи может быть вообще где угодно, это отдельный вопрос
да но у тебя по хостнейму стоит прокся, которая это разруливает
источник

A

Artem in Clojure — русскоговорящее сообщество
Alex Bubnov
давайте по порядку чтоли.
есть SPA smth с роутами /a и /b.

если оно написано с hash-based routing, оно может выглядеть, например, как stage.my.domain/smth#/a (тестовое окружение) и smth.my.domain#/a в проде. в этом случае артефакты со стейджа на прод промоутятся простым копированием, в конфиге nginx нет try_files, в в случае прихода пользователя на внутренний url приложения базовый url приложения тривиально вычисляется из window.location.pathname и window.location.hash.

если оно написано с history-based routing, начинаются последствия. в случае прихода пользователя на внутренний url приложения, stage.my.domain/smth/a, нам нужно
1 - всегда отдавать index.html на все внутренние url приложения(try_files в nginx на location /smth)
2 - на старте SPA нужно понять, а куда вообще пришел пользователь, потому что текущий url - это base url + route, и где между ними граница - хз.
в Js п.2 принято(react-router, angular) решать запеканием base url в приложение при сборке, что приводит к необходимости либо точной унификации окружений, либо правилу "все spa на поддоменах", либо невозможности промоушена копированием.

да, чисто в теории можно вычислить base url отрезая префиксы location и пытаясь выбрать роут, но это как-то довольно спорно звучит.
base_url формирует твое же приложение spa или ssr.
Откуда ограничение на все spa на поддоменах?
источник

AB

Alex Bubnov in Clojure — русскоговорящее сообщество
Artem
base_url формирует твое же приложение spa или ssr.
Откуда ограничение на все spa на поддоменах?
Какая связь тут с ssr? Он не работает с hash-based routing, чтоли? Вроде работает, почему бы нет.
источник

AB

Alex Bubnov in Clojure — русскоговорящее сообщество
Artem
base_url формирует твое же приложение spa или ssr.
Откуда ограничение на все spa на поддоменах?
"Все spa на поддоменах" - чтобы собирать их всегда с base-href=/ и ни о чём не думать.
источник

A

Artem in Clojure — русскоговорящее сообщество
Alex Bubnov
"Все spa на поддоменах" - чтобы собирать их всегда с base-href=/ и ни о чём не думать.
)))
Нельзя подкинуть через env base_url?
источник

AB

Alex Bubnov in Clojure — русскоговорящее сообщество
Artem
)))
Нельзя подкинуть через env base_url?
Ну а как env пробросить в браузер? Можно через хедеры, наверное, может получиться весело.
источник

A

Artem in Clojure — русскоговорящее сообщество
)))
источник

A

Artem in Clojure — русскоговорящее сообщество
window
источник

A

Artem in Clojure — русскоговорящее сообщество
Достаточно
источник

TP

Tim Plotnikov in Clojure — русскоговорящее сообщество
Народ, я есть тут андроид разработчики кроме меня?)
Кто-нибудь думал о том, чтобы встроить repl в андроид-приложение и использовать его для дебага итд? Возможно ли это?
источник

Г

Григорий in Clojure — русскоговорящее сообщество
Если разберешься — отпишись. Мне инетерсно узнать
источник

TP

Tim Plotnikov in Clojure — русскоговорящее сообщество
Окей, я пингану если что-нибудь будет)
источник

S

Sergey in Clojure — русскоговорящее сообщество
Alex Bubnov
давайте по порядку чтоли.
есть SPA smth с роутами /a и /b.

если оно написано с hash-based routing, оно может выглядеть, например, как stage.my.domain/smth#/a (тестовое окружение) и smth.my.domain#/a в проде. в этом случае артефакты со стейджа на прод промоутятся простым копированием, в конфиге nginx нет try_files, в в случае прихода пользователя на внутренний url приложения базовый url приложения тривиально вычисляется из window.location.pathname и window.location.hash.

если оно написано с history-based routing, начинаются последствия. в случае прихода пользователя на внутренний url приложения, stage.my.domain/smth/a, нам нужно
1 - всегда отдавать index.html на все внутренние url приложения(try_files в nginx на location /smth)
2 - на старте SPA нужно понять, а куда вообще пришел пользователь, потому что текущий url - это base url + route, и где между ними граница - хз.
в Js п.2 принято(react-router, angular) решать запеканием base url в приложение при сборке, что приводит к необходимости либо точной унификации окружений, либо правилу "все spa на поддоменах", либо невозможности промоушена копированием.

да, чисто в теории можно вычислить base url отрезая префиксы location и пытаясь выбрать роут, но это как-то довольно спорно звучит.
> в Js п.2 принято(react-router, angular)
Уверены, что именно там и в сообществе, а не там, где вы с ними работали? :)
Если убрать base url вообще, что случится? Ссылки поедут? Тогда вопрос - почему, как они так сформированы, может надо как-то иначе?
источник

AB

Alex Bubnov in Clojure — русскоговорящее сообщество
Sergey
> в Js п.2 принято(react-router, angular)
Уверены, что именно там и в сообществе, а не там, где вы с ними работали? :)
Если убрать base url вообще, что случится? Ссылки поедут? Тогда вопрос - почему, как они так сформированы, может надо как-то иначе?
так это в стандартном тулинге везде.
в ангуляре точно ng build --base-href, в реакте  вроде из CRA приплывает(но это не точно).
источник

AB

Alex Bubnov in Clojure — русскоговорящее сообщество
что там первым ломается по дефолту я не помню, у нас ломалась загрузка конфига из base-href/app-config.json.
источник

ДГ

Дмитрий Гришин... in Clojure — русскоговорящее сообщество
Я все понял, сори
источник

VL

Vladimir Legkunets in Clojure — русскоговорящее сообщество
Они там написали что не надо сейчас использовать http-kit - согласны с этим мнением? Jetty надежней? :)
источник