在Rails PWA中,我可以在清单文件中提供动态内容吗?

问题描述 投票:0回答:1

我有多个子域,我想为每个子域提供不同的清单文件。我发现有一些不同的消息来源声称可以做到这一点,但是它们都没有起作用,并且对它们的大多数评论都同意。

首先,我有一个普通的manifest.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也停止工作。我仍然不明白为什么会这样,因为与链接到manifest.json没什么不同,对吧?

[我也尝试只写<link rel="manifest" href="/other-manifest.json" />,什么也没写,这也不起作用,这使我相信文件的标题必须为“ manifest.json”。

2)其他解决方案包括忽略rel=manifest元素的href并在以后使用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)我还尝试在manifest.json.html文件中运行request.subdomain并根据该值有条件地呈现内容,但这也破坏了它,这表明request对象在该文件内不可访问。 >

任何人都可以在其清单文件中成功呈现动态内容吗?

我有多个子域,我想为每个子域提供不同的清单文件。我发现一些不同的来源声称可以做到这一点,但是它们都没有起作用,并且大多数关于...

ruby-on-rails manifest progressive-web-apps manifest.json
1个回答
0
投票

我犯的错误是没有将新文件的路径添加到我的预编译中。

我像这样将其添加到config/initializers/assets.rb

© www.soinside.com 2019 - 2024. All rights reserved.