mar*_*nig 5 html ruby-on-rails manifest
我有一个包含数千个静态单页应用程序的市场/ Web应用程序.
希望为每个单页面应用程序添加一个Web App Manifest(<head> </head>对应stem_url于所有urls给定SPA 的{root} /index.html ).
标准方法:
<link rel="manifest" href="/manifest.json">
Run Code Online (Sandbox Code Playgroud)
...似乎不是一个很好的前进方式,因为这意味着数千个manifest.js文件被转储到/public文件夹中(它是一个rails应用程序!)并且最终会使app/assets编译工作非常繁重起来.
有没有一种方法可以像我们做样式标签一样内联清单json:
<style>
body { // style here }
…
</style>
Run Code Online (Sandbox Code Playgroud)
相当于清单声明:
<manifest>
{
"name": "HackerWeb",
"short_name": "HackerWeb",
…
}
</manifest>
Run Code Online (Sandbox Code Playgroud)
RAD*_*ack 11
您可以使用数据内联json:url.所以不是标准
<link rel="manifest" href="/manifest.json">
Run Code Online (Sandbox Code Playgroud)
这将是
<link rel="manifest" href='data:application/manifest+json,{ "name": "theName", "short_name": "shortName", "description": "theDescription"}' />
Run Code Online (Sandbox Code Playgroud)
我也想内联它并且刚刚尝试过.有用
正如 RADXack 所提到的,这非常有效
<link rel="manifest" href='data:application/manifest+json,{ "name": "theName", "short_name": "shortName", "description": "theDescription"}' />
Run Code Online (Sandbox Code Playgroud)
但是如果您想添加更多属性(例如颜色或 start_url)怎么办?
然后在您的服务器上您可以添加:
const manifest = JSON.stringify({
name: "React Doc",
short_name: "React"
start_url: "/",
background_color: "#fffff",
theme_color: "#ff00ff",
display: "standalone",
});
const HTML = `<!DOCTYPE html>
<html lang="en">
<head>
<link rel="manifest" href='data:application/manifest+json,${encodeURIComponent(manifest)}' />
...rest of your code`
Run Code Online (Sandbox Code Playgroud)
encodeURIComponent将为您转换所有特殊字符。
这样,您就可以确定无论传递的数据是什么,它都是 URL 友好的
| 归档时间: |
|
| 查看次数: |
1612 次 |
| 最近记录: |