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

时间:2017-05-19 13:41:16

标签: reactjs express caching webpack

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

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

 <img src={require("./images/Logo.png")} alt="Logo"/>

我的webpack.config.js中有一个加载程序,它将图像输出到/ public / images

module: {
    loaders: [
    {
        test: /\.png/,
        loader: 'url-loader?limit=10000&name=public/images/[name].[ext]'
     }]
}

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

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

问题是require()解析了路径,包括/ public folder:

<img class="full-width" src="/public/images/Logo.png" alt="Logo">

express需要一个没有public/部分的网址。

有没有办法强制express.static()在其路径中加入/public

1 个答案:

答案 0 :(得分:7)

  

有没有办法强制express.static()在其路径中加入/public

绝对:

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