У меня есть аудиофайл, хранящийся на сервере, и клиенты могут запрашивать эти аудиофайлы через API REST. Я наблюдал данные, запрошенные клиентом, и я пришел к выводу, когда я снова воспроизвожу аудио (повтор), затем новый запрос отправляется на сервер для этого конкретного файла. Есть ли способ предотвратить это или кешировать данные локально?Клиент продолжает запрашивать файл из REST API
HTML
<audio controls="controls" autoplay style="width: 100%">
<source src="https://localhost:8080/api/file" type="audio/mpeg">
</audio>
Javascript (Node.js в сочетании с Express.js)
router.get('/file', (req, res) => {
let audioFile = path.join(__dirname, 'files/audio-book.mp3');
res.sendFile(audioFile);
})
EDIT
У меня есть локальный файл и файл, посланный API REST. Локальный запрос файла имеет HTTP-код 304: Not modified
, а файл из запроса API REST - 206: Partial content
. Я уже добавил max-age
и удалил last-modified
, но никакого результата.
Заголовки:
Accept-Ranges -> Bytes
Cache-Control -> public, max-age=3600
Connection -> keep-alive
Content-Length -> 7056954
Content-Type -> audio/mpeg
Date -> Sun, 17 Jan 2016 10:16:48 GMT
Etag -> W/"6bae3a-15195a7f2aa"
X-Powered-By → Express
Вы можете попробовать установить [Cache-Control] (https://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.9.3) header 'res.header ('Cache-Control', ' max-age = 3600 '). ' – Darth
@ Darth Client по-прежнему запрашивает API для этого конкретного файла. – DevNebulae
Оформить вкладку сети браузера обозревателя, вы уверены, что это не 304? –