我有多个子域,我想为每个子域提供不同的清单文件。我发现有一些不同的消息来源声称可以做到这一点,但是它们都没有起作用,并且对它们的大多数评论都同意。
首先,我有一个普通的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
对象在该文件内不可访问。 >
任何人都可以在其清单文件中成功呈现动态内容吗?
我有多个子域,我想为每个子域提供不同的清单文件。我发现一些不同的来源声称可以做到这一点,但是它们都没有起作用,并且大多数关于...
我犯的错误是没有将新文件的路径添加到我的预编译中。
我像这样将其添加到config/initializers/assets.rb
: