Как использовать функции файловой системы в EJS? - PullRequest
0 голосов
/ 06 ноября 2019

Первый день начала с NodeJS и EJS, и я не понимаю, как справиться с получением mdate (измененной даты) файла и добавить его в виде строки в конец ссылки на файл в EJS.

Это то, что я пытаюсь сделать:

<link href="/css/mystylesheet.css?v=<%= mdate of mystylesheet.css %>" rel="stylesheet" type="text/css" />

Я использую вышеуказанную ссылку, плюс другие вещи в файле частичного представления под названием htmlhead.ejs, который я хочу включить во все представления.

Как получить дату изменения файла mystylesheet.css, добавляемого к атрибуту href, чтобы это было что-то вроде этого (показывающего, как я сейчас делаю это в коде ColdFusion):

 <link href="/css/mystylesheet.css?v=#DateTimeFormat(GetFileInfo(ExpandPath('/css/mystylesheet.css')).lastmodified, 'yymmddhhnnss')#" rel="stylesheet" type="text/css" />

Что выводит в браузер как:

<link href="/css/mystylesheet.css?v=20191106104000" rel="stylesheet" type="text/css" />

Я использую ExpressJS.

1 Ответ

1 голос
/ 06 ноября 2019

Сначала вам нужно прочитать статус вашего файла, чем отправить его в HTML. Но не забывайте, что если у вас нет кэша, и если у вас большой файл, это может повлиять на производительность загрузки.

const ejs = require('ejs');
const stats = fs.statSync("/dir/file.txt");
const html = ejs.render('<link href="/css/mystylesheet.css?v=<%= time %>" rel="stylesheet" type="text/css" />', {time:stats.mtime.getTime()} );
...