Могу ли я использовать динамический c контент в файле манифеста в PWA Rails? - PullRequest
0 голосов
/ 23 января 2020

У меня есть несколько поддоменов, и я хотел бы предоставить отдельный файл манифеста для каждого. Я нашел несколько разных источников, которые утверждают, что выполнили sh это, но ни один из них не работает, и большинство комментариев к ним согласны.

Для начала, у меня был обычный манифест. json .erb файл, связанный с ним <link rel="manifest" href="/manifest.json" />, и он работал нормально.

1) Итак, сначала я попытался просто условно связать различные файлы манифеста, например:

<% if request.subdomain.include? "www" %>
  <link rel="manifest" href="/other-manifest.json" />
<% else %>
  <link rel="manifest" href="/manifest.json" />
<% end %>

и тогда я бы просто добавил файл с именем other-manifest. json .erb. Что странно, так это то, что это не только не сработало для other-manifest. json .erb, но и когда поддомен не является "www", manifest. json .erb также перестало работать. Я до сих пор не понимаю, почему это так, потому что это не должно отличаться от ссылки на манифест. json, верно?

Я также пытался написать <link rel="manifest" href="/other-manifest.json" /> и ничего больше, и это тоже не сработало, что заставляет меня поверить, что файл должен иметь название «manifest. json».

2) Другие решения включали пропуск href для элемента rel=manifest и использование Javascript для добавь это позже. Опять же, я не знаю, почему это сработает, но я попробовал:

    <link rel="manifest" id="manifest" />
    <!-- content -->
    <% if request.subdomain.include? "www" %>
        document.querySelector('#manifest').setAttribute('href', '/other-manifest.json');
    <% else %>
        document.querySelector('#manifest').setAttribute('href', '/manifest.json');
    <% end %>

, но это тоже не сработало.

3) Я также попытался запустить request.subdomain внутри файла манифеста. json. html и условного рендеринга содержимого на основе этого значения, но это также нарушает его, что указывает на то, что объект request недоступен внутри этого файла.

Кому-нибудь удалось отобразить динамическое c содержимое в файле манифеста?

1 Ответ

0 голосов
/ 23 января 2020

Ошибка, которую я сделал, не добавляла путь нового файла к моей прекомпиляции.

Я добавил его в config/initializers/assets.rb примерно так:

Rails.configuration.assets.precompile += %w[serviceworker.js manifest.json austintacovan-manifest.json]

и теперь он условно обслуживает два разных манифеста.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...