Как получить доступ к содержимому / apple-app-site-association в Ember. js? - PullRequest
0 голосов
/ 22 января 2020

Я слежу за https://developer.apple.com/library/archive/documentation/General/Conceptual/AppSearch/UniversalLinks.html

Как мне заставить Эмбер обслуживать этот URL https://www.some-url.com/app-app-site-association

Примечание, app-app-site-association это файл К сожалению, Apple решила не добавлять расширение к этому файлу.

В идеале, доступ к этому URL должен отображать:

{
  "applinks": {
    "apps": [],
      "details": [
        {
        "appID": "9F32916B95.foo.bar.baz",
        "paths": ["*"]
        }
    ]
  }
}

1 Ответ

3 голосов
/ 22 января 2020

Здесь важно понять, что если вы хотите доставить файл * stati c, это может быть ваш /app-app-site-association или просто изображение на /something.jpg, это никак не связано с ember.

Ember работает в браузере. Таким образом, вся маршрутизация ember происходит в браузере. Вот почему вы должны настроить свой веб-сервер так, чтобы он обслуживал файл index.html, когда он не находит файл.

Поэтому, когда вы вводите example.com/something, это вызовет HTTP GET example.com/something. Затем ваш веб-сервер должен проверить, существует ли файл something, если да, он должен ответить 200 OK и содержимым этого файла.

Если if не найдет файл something обычно отвечает 404 NOT FOUND. Однако, когда вы используете SPA в качестве ember, вы настраиваете свой веб-сервер так, чтобы он никогда не отвечал 404 NOT FOUND, а вместо этого возвращал 200 OK и тело index.html. ( вы можете увидеть пример конфигурации в руководствах ember, но это будет отличаться для разных веб-серверов )

После этого будет загружено ваше приложение ember (вы включили файл .js в index.html) и ember проверит текущий URL и запустит маршрутизацию ember. Это происходит в браузере .

Так что если что-то хочет сделать HTTP-запрос и получить файл app-app-site-association, он, вероятно, не хочет получать ваш index.html и затем запустите браузер, чтобы позволить ember сделать что-нибудь. Он просто хочет файл напрямую с вашего веб-сервера. Таким образом, ваш веб-сервер должен напрямую ответить 200 OK и содержимым этого файла. И он, вероятно, будет делать это, как я упоминал выше, если этот файл просто существует.

Теперь в ember проектах есть папка public. Если вы хотите иметь некоторые файлы вместе с вашим ember-приложением, которые должны просто обслуживаться вашим веб-сервером, это правильное место. Все, что вы в нее вставите, будет просто скопировано в папку dist. Это означает, что когда вы затем развернете папку dist, вы также развернете файл.

Однако будьте осторожны с конфигурацией вашего веб-сервера. Поскольку файл не имеет окончания, он, вероятно, будет использоваться как text/plain. Если вы хотите, чтобы он обслуживался как application/json, вам необходимо соответствующим образом настроить ваш веб-сервер.

...