【发布时间】:2017-09-17 01:43:12
【问题描述】:
我有一个提供模板index.html 的 Flask 应用程序,该模板又访问由 webpack 生成的 javascript 文件。问题是我正在为 webpack 生成的文件生成哈希,以防止浏览器缓存,并且我无法弄清楚如何访问 webpack 生成的文件,因为哈希名称可以更改。例如,如果 webpack 生成了一个名为bundle-cdcf74127a4e321fbcf0.js 的文件,我不会提前知道哈希函数cdcf74127a4e321fbcf0,所以我无法在index.html 中访问它。
这是我的 webpack 配置文件:
const CleanWebpackPlugin = require('clean-webpack-plugin');
module.exports = {
entry: "./js/main.js",
output: {
filename: "static/bundle-[hash].js",
},
resolveLoader: {
moduleExtensions: ['-loader']
},
module: {
loaders: [
{
test: /\.jsx?$/,
exclude: /(node_modules|bower_components)/,
loader: 'babel',
query: {
presets: ['react', 'es2015', 'stage-0']
}
},
{
test: /\.css$/,
loader: 'style-loader',
},
{
test: /\.css$/,
loader: 'css-loader',
query: {
modules: true,
localIdentName: '[name]__[local]___[hash:base64:5]'
}
}
]
},
plugins: [new CleanWebpackPlugin(['static/bundle*.js'])]
};
index.html中用于调用webpack生成文件的代码如下(这段代码不起作用,因为这里的文件名中星号搜索似乎不起作用):
<body>
<div id="app"></div>
<script src="bundle*.js"></script>
</body>
flask 应用程序代码如下:
app = Flask(__name__, static_url_path='')
@app.route('/')
def default():
return render_template('index.html')
我将如何修复此代码以便它为 webpack 生成的文件提供服务?
【问题讨论】:
标签: javascript html webpack