我正在尝试创建Express应用程序。我的局限性是我不能使用任何模板引擎来呈现HTML。 (至少)存在两个问题:
对于问题2,我尝试过:
app.get('/transactions', (req, res) => res.sendFile(path.join(__dirname+'/public/assets/html/transactions.html')))
,然后在transactions.html中,我有
<link rel="stylesheet" href="../stylesheets/shared/constants.css">和指向样式表的其他链接。
显示页面时,它不应用任何样式。当我在浏览器中检查源代码,然后单击constants.css的链接时,它显示以下消息:
Cannot GET /stylesheets/shared/constants.css
这似乎不是正确的逻辑。什么事情应该改变?
答案 0 :(得分:2)
简单的例子:
假设您的文件夹结构是
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时,最好使用absolute
路径而不是relative
路径。
或为静态文件设置虚拟路径,例如:
app.use('/static', express.static(__dirname + "/public"))
// In your html
<link rel="stylesheet" href="/static/stylesheets/shared/constants.css">
答案 1 :(得分:0)
简单的例子对我有用:
app.use(express.static(__dirname + "/publlic"))
app.get('/', (req, res) => {
app.engine('html', cons.swig);
app.set('view engine', 'html');
res.render('index');
})
// In your html
<link rel="stylesheet" href="/static/stylesheets/shared/constants.css">
用这种方法,我用的引擎和你一样。