Express.js:为webpack中捆绑的静态资产设置缓存控制头

Mar*_*oka 3 caching express reactjs webpack

我无法弄清楚如何使用express.js和webpack为静态资产设置Cache-Control标头.

在我的反应应用程序中,我包括如下静态图像:

 <img src={require("./images/Logo.png")} alt="Logo"/>
Run Code Online (Sandbox Code Playgroud)

我的webpack.config.js中有一个加载器,可以将图像输出到/ public/images

module: {
    loaders: [
    {
        test: /\.png/,
        loader: 'url-loader?limit=10000&name=public/images/[name].[ext]'
     }]
}
Run Code Online (Sandbox Code Playgroud)

最后,我将server.js中的/ public文件夹标记为包含静态资源,并设置Cache-Control标头

const server = express();
server.use(express.static(path.join(__dirname, 'public'), {maxAge: "30d"}));
Run Code Online (Sandbox Code Playgroud)

问题是require()解析包含/ public文件夹的路径:

<img class="full-width" src="/public/images/Logo.png" alt="Logo">
Run Code Online (Sandbox Code Playgroud)

但是express期望没有该public/部分的URL .

有没有办法强迫express.static()它包含/public在它的路径中?

rob*_*lep 8

有没有办法强迫express.static()它包含/public在它的路径中?

绝对:

server.use('/public', express.static(path.join(__dirname, 'public'), {maxAge: "30d"}));
Run Code Online (Sandbox Code Playgroud)