我正在尝试创建一个Express应用程序。我的限制是我不能使用任何模板引擎来呈现HTML。存在(至少)两个问题:
对于问题2。我试过:
app.get('/transactions', (req, res) => res.sendFile(path.join(__dirname+'/public/assets/html/transactions.html')))
null
然后在transactions.html中
<link rel="stylesheet" href="../stylesheets/shared/constants.css">
null
当页面显示时,它不应用任何样式。当我在浏览器中检查源代码,并单击constants.css的链接时,它显示消息:
Cannot GET /stylesheets/shared/constants.css
null
这似乎不是正确的逻辑。哪些事情要改?
简单示例:
假设您的文件夹结构:
app.js
| +-- public
| | +-- stylesheets
| | | +-- shared
| | | | +-- constants.css
...
您可以简单地将公用文件夹作为静态服务器,如:
app.use(express.static(__dirname + "/public"))
// In your html
<link rel="stylesheet" href="/stylesheets/shared/constants.css">
对于express,最好使用绝对
路径,而不是相对
路径。
或者为静态文件设置虚拟路径,如:
app.use('/static', express.static(__dirname + "/public"))
// In your html
<link rel="stylesheet" href="/static/stylesheets/shared/constants.css">