【发布时间】:2017-07-27 21:10:53
【问题描述】:
我正在使用 node.js 做一个生物医学网站,我遇到了一个问题: 在我的 app.js(服务器文件)中,我有这些代码
app.get('/disease/:orphanetID', function(req, res) {
var orphanetID=req.params.orphanetID;
res.render('pages/disease.ejs', {activetitle: "views"});
});
问题是 disease.ejs 中所需的所有静态资源都会出现错误 404。
例如对于 disease.ejs 中的这段代码:
<script src="static/js/DOMscripts.js"></script>
在 chrome 控制台中,我看到:
(red cross) GET http://localhost:8080/disease/static/js/DOMscripts.js
问题是,我的静态资源在http://localhost:8080/static/js/DOMscripts.js,只是出现在 URL 中的字符串“disease”......这不是好的 URL!
在测试了一些东西之后,我发现这段代码可以正常工作:
app.get('/disease', function(req, res) {
//var orphanetID=req.params.orphanetID;
res.render('pages/disease.ejs', {activetitle: "views"});
});
所以如果我没有任何参数,它可以工作,但我需要它。
关于信息,我的静态资源代码是:
app.use('/static', express.static(__dirname + '/public'));
我应该怎么做才能有一个参数?
【问题讨论】:
-
对静态资源使用页面相对 URL 通常是个问题,因为它告诉浏览器在从服务器请求静态资源 URL 之前将页面 URL 的路径添加到静态资源 URL,而这很少是你想要的.设置您的静态资源,使它们都以
/开头。
标签: javascript node.js parameters static routing