Я новичок ie в Узле и Express. Я просматривал эту Express 'документацию по этой ссылке: https://expressjs.com/en/4x/api.html#express .stati c
В объекте опций express.static(root, [options])
есть одно свойство с именем etag
и описание здесь говорит только это Включение или отключение генерации etag . Я не мог понять эту строку и, карабкаясь вокруг нее, я наткнулся на этот ответ: Кэширует ли express .stati c () файлы в памяти?
Там написано:
Если браузер видит ETag со страницей, он его кеширует. В следующий раз, когда браузер загружает страницу, он проверяет изменения номера ETag. Если файл точно такой же, как и его ETag - сервер отвечает кодом состояния HTTP 304 («не измененный») вместо повторной отправки всех байтов и сохраняет кучу пропускной способности.
Насколько я понимаю этот ответ, если etag одинаков и файлы не изменены, браузер отобразит кэшированный файл и сэкономит кучу пропускной способности.
Я попытался реализовать его с помощью этого кода:
const express = require('express');
const path = require('path');
const port = 8000;
const app = express();
app.set('views', path.join(__dirname, 'views'));
app.set('view engine', 'ejs');
app.use(express.static('public',{
etag: true
}));
app.get('/', function (req, res) {
res.render('index', { title: 'Hey' })
});
app.listen(port, (err) => {
if(err){
console.log("ERROS: ",err);
}
console.log("Express server is runnig on port: ",port);
});
У меня есть index.e js файл в папке представлений и home. css файл в папке publi c.
В браузере я набрал: http://localhost:8000/
, затем я продолжил проверять его, затем открыл вкладку «Сеть» и обновил страницу два-три раза. Как и ожидалось, и в соответствии с вышеупомянутым ответом, так как я не изменял файлы и etag, код состояния был 304. Но на вкладке размера он не показывает (кэш памяти) , вместо этого он дает размер и текст всплывающей подсказки гласит: xyz B передается по сети, размер ресурса: ab c B
Почему не выполняется рендеринг кэшированного файла? ИЛИ Разве это не кеширование файлов вообще? ИЛИ Это что-то не так в понимании концепции?
А что это за включение и отключение генерации etag, упомянутое на странице документации?
Заранее благодарим за любую помощь, которую вы можете оказать.