【发布时间】:2018-01-31 04:32:42
【问题描述】:
我有一个 manifest.json 文件,当放置在我的网站根目录中时可以正确加载。我想使用我的站点中的 php 变量来填充清单中的值,而不是它是一个静态文件。
我找不到关于此in the spec 的任何信息,我不确定是否可行。
我尝试将清单名称切换为 manifest.php 并在其中使用 header('Content-Type: application/json')。
在我的索引文件头中:
<script src="<?php echo $SITE_URL;?>/main.js"></script>
<script src="<?php echo $SITE_URL;?>/sw.js"></script>
<link rel="manifest" href="<?php echo $SITE_URL;?>/manifest.php">
在我的 manifest.php 中:
<?php header('Content-Type: application/json');
echo "
{
\"name\": \"$SiteName\",
\"gcm_user_visible_only\": true,
\"short_name\": \"$Name\",
\"description\": \"$PageDescription.\",
\"start_url\": \"/index.php\",
\"display\": \"standalone\",
\"orientation\": \"portrait\",
\"background_color\": \"$darkblue\",
\"theme_color\": \"#f0f0f0\",
\"icons\": [{
\"src\": \"logo-load.png\",
\"sizes\": \"96x96 128x128 144x144\",
\"type\": \"image/png\"
},{
\"src\": \"logo-icon.png\",
\"sizes\": \"48x48 72x72\",
\"type\": \"image/png\"
}]
}
";
?>
变量$SiteName, $Name, $PageDescription, $darkblue, etc 都是在加载 manifest.php 之前在我的文档头中定义的。
我正在尝试的可能吗?
【问题讨论】:
-
这应该可以正常工作。您是否从 manifest.php 获得有效的 JSON?您可以考虑构建一个数组并使用
json_encode- 可能更容易发现问题。你到底在坚持什么? -
我得到了有效的 JSON,但缺少值(php 应该在哪里)。打算使用 json_encode 看看结果是否不同
-
那么,
$SiteName在哪里赋值?您的代码按原样“工作”。
标签: php json progressive-web-apps manifest.json