node.js - 如何在 EJS 中使用文件系统函数?
问题描述
从 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。
解决方案
首先,您需要读取文件状态,而不是将其发送到 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()} );
推荐阅读
- c# - 如何使用动态标签名称将数组序列化为 XML
- php - 使用 PHP 或 SQL 按出现优先级对 MYSQL 结果进行排序
- vba - 在多个工作表的单元格中查找公式并替换为新公式,但引用单元格来获取公式的一部分
- grafana - 使用 prometheus 和 grafana 跟踪事件
- c++ - 为什么我的 C++ 程序输出不同的数字来将米转换为英尺?
- android - GPS追踪器android线程
- python - 通用日志记录函数包装器
- python - 如何使用复式表在 3D 中绘图 - Matplotlib
- operating-system - OS:交换空间,数据何时存储在交换空间中?
- reactjs - componentWillReceiveProps 未在 Office 面板上触发