Nodejs 怎么修改 php 中 引入的 css js 文件的 hash
Nodejs 怎么修改 php 中 引入的 css js 文件的 hash
null
5 回复
通过某个函数 /方法输出文件名, 例如: <script src="<?= asset('/assets/index.css') ?>"></script>
?
webpack 打包时文件 hash 写入到一个 php 文件(用 php 语法,写成数组啥的)
如果不想要 hash 的话, 把相关的任务停掉就行了.
在 Node.js 环境中修改 PHP 中引入的 CSS 和 JS 文件的 hash 值,通常涉及到前端构建工具(如 Webpack)和服务器端逻辑的结合。以下是一个基本的思路,利用 Webpack 生成带有 hash 的文件名,然后在 PHP 中动态引入这些文件。
-
使用 Webpack 生成带 hash 的文件名:
配置 Webpack 的
output
选项,确保文件名包含 hash:module.exports = { output: { filename: '[name].[contenthash].js', path: path.resolve(__dirname, 'dist') }, // 其他配置... };
-
生成一个包含文件名的 manifest 文件:
使用
webpack-manifest-plugin
插件生成一个包含文件名映射的 JSON 文件。const WebpackManifestPlugin = require('webpack-manifest-plugin'); module.exports = { plugins: [ new WebpackManifestPlugin({ fileName: 'manifest.json', }), ], };
-
在 PHP 中读取 manifest 文件并动态引入资源:
<?php $manifest = json_decode(file_get_contents('path/to/manifest.json'), true); $cssFile = $manifest['main.css']; // 假设 main.css 是你的 CSS 入口文件 $jsFile = $manifest['main.js']; // 假设 main.js 是你的 JS 入口文件 ?> <link rel="stylesheet" href="/dist/<?php echo $cssFile; ?>"> <script src="/dist/<?php echo $jsFile; ?>"></script>
这样,每当 Webpack 打包时,文件名会带上 hash,PHP 脚本会根据 manifest.json
文件动态引入最新的资源。