我使用Webstorm创建页面,但在呈现.ejs时我无法显示图像。这是我的代码:
test.js
http = require('http')
express = require('express')
app = express()
app.engine('.ejs', require('ejs').__express)
var port = process.env.PORT ? process.env.PORT : 3000
http.createServer(app).listen(port, null, null, function(){
console.log('Listening to port ' + port)
})
app.get('/test', function(req, res){
res.render('test.ejs')
})
test.ejs
注意:当我使用谷歌浏览器打开完全相同的代码时,图像呈现完美。当我尝试使用http://localhost:3000/test时,我会得到一个通用图片图标。
<div>
<p style="font-size: 40px; font-style: oblique;">My Page</p>
<form action="/next" method="post">
<img src="../images/test.png" >
<p>Preço: R$ 100,00</p>
<input name="next" id="next" type="submit" value="next">
</form>
</div>
这可能与权限有关吗?我使用以下命令更改了我的/ images文件夹和test.png文件的权限:
sudo chmod 0755 /images
sudo chmod 0644 test.png
但仍然没有奏效。谢谢!
答案 0 :(得分:1)
使用以下项目结构时:
app.js
public
--
images
test.ejs
--
test.png
我设法使用以下代码使其工作:
http = require('http')
express = require('express')
app = express()
app.engine('.ejs', require('ejs').__express)
app.set('views', __dirname + '/public')
app.set('view engine', 'ejs')
var port = process.env.PORT ? process.env.PORT : 3000
http.createServer(app).listen(port, null, null, function(){
console.log('Listening to port ' + port)
})
app.get('/test', function(req, res){
res.render('test.ejs')
})
app.use(express.static(__dirname + '/public'))
.ejs:
<div>
<p style="font-size: 40px; font-style: oblique;">My Page</p>
<form action="/next" method="post">
<img src="images/test.png" >
<p>Pre?o: R$ 100,00</p>
<input name="next" id="next" type="submit" value="next">
</form>
</div>