以前,如果有新版本,我使用以下方法强制浏览器重新加载我的JavaScript文件。
<script src="common.js?version=1337"></script>
<script src="app.js?version=1337"></script>
我的HTML是自动生成的(例如使用PHP),因此很容易实现自动化。
现在我想使用ES6模块并导入我的公共代码。 我的HTML变为:
<script src="app.js?version=1337" type="module"></script>
app.js
包含导入:
import {foo, bar} from './common.js';
现在我的问题是:如何在新方案中影响common.js
的缓存?
每次修改app.js
时,我都不想手动编辑common.js
。如果可能的话,我也不想动态生成/预处理我的任何JavaScript文件。
答案 0 :(得分:0)
ES6模块可以导入输出有效JS的PHP文件。只要你也设置了正确的标题,你应该没问题。
因此,您的index.php
文件将包含:
<script src="app.js.php?version=1337" type="module"></script>
您的app.js.php
文件将包含:
<?php
header("Content-Type: application/javascript");
$version = 1337; // Probably imported form some config file;
?>
import {foo, bar} from './common.js.php?version=<?=$version?>';