html5 - node静态资源服务器设置了Cache-Control,但浏览器从来不走304
伊谢尔伦
伊谢尔伦 2017-04-17 14:49:58
0
2
540

我使用node作静态资源服务器,返回一张普通的png图片。
现在我给这个响应设置了Cecha-Control,希望可以让浏览器进行缓存。可是每次我刷新页面,都是返回200,从服务器请求资源。请问应该如何设置才能使用浏览器的缓存呢?

下面是node端代码:

const fs = require('fs')
const http = require('http')
const url = require('url')

const server = http.createServer((req, res) => {
  let pathname = url.parse(req.url).pathname
  let realPath = 'assets' + pathname
  console.log(realPath)
  fs.readFile(realPath, "binary", function(err, file) {
    if (err) {
      res.writeHead(500, {'Content-Type': 'text/plain'})
      res.end(err)
    } else {
      res.writeHead(200, {
        'Access-Control-Allow-Origin': '*',
        'Content-Type': 'image/png',
        'ETag': "666666",
        'Cache-Control': 'max-age=31536000, public',
        'Expires': 'Mon, 07 Sep 2026 09:32:27 GMT'
      })
      res.write(file, "binary")
      res.end()
    }
 })
})

server.listen(80)

console.log('Listening on port: 80')

请求header信息:

伊谢尔伦
伊谢尔伦

小伙看你根骨奇佳,潜力无限,来学PHP伐。

全部回覆(2)
PHPzhong
  1. 強刷了吧

  2. 主機開啟了 disable cache 了吧

大家讲道理

已經解決了,是刷新的問題。手動刷新會強制瀏覽器走伺服器,只要在新視窗重新開啟目前頁面就能看到200 (from cache)

熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!