我已将图片放在“/ public / images”路径中。现在,我正在按照自己的意愿获取网址。但是,只要我将该网址粘贴到网络浏览器,就会显示无法获取/public/images/food-1-xxhdpi.png 。那么我应该编写单独的API来处理它吗?
主文件app.js
var express = require('express');
var mongoose = require('mongoose');
var bodyParser = require('body-parser');
var app = express();
var PORT = 3000;
var foodtrucklist = require('./controller/foodtrucklist.js');
var foodtruck = require('./model/datafoodtruck');
var db = mongoose.connect('mongodb://127.0.0.1:27017/quflip');
mongoose.connection.once('connected', function() {
console.log("Connected to database")
foodtruck.save(function(err,foodtrucks){
if (err) res.send(err);
});
});
app.use(bodyParser.urlencoded({extended:true}));
app.use(bodyParser.json());
app.use(express.static(__dirname + '/public/images'));
app.get('/foodtrucklist',foodtrucklist);
app.listen(PORT,function() {
console.log('express listining on port' + PORT);
});
答案 0 :(得分:0)
这一行
app.use(express.static(__dirname + '/public/images'));
将/public/images
文件夹中的静态内容映射到Web应用程序的根目录。因此,请求/public/images/food-1-xxhdpi.png
仅在完整路径为.../public/images/public/images/food-1-xxhdpi.png
您应该提出/food-1-xxhdpi.png
请求或将代码行更改为:
app.use('/my-virtual-directory',express.static(__dirname + '/public/images'));
这样就可以在您选择的/my-virtual-directory
所以...在这种情况下你的文件变成/my-virtual-directory/food-1-xxhdpi.png
显然,你仍然可以做到这一点,使它在外部映射到与内部映射相同的方式:
app.use('/public/images', express.static(__dirname + '/public/images'));
以下是有关Express的静态中间件的更多信息:https://expressjs.com/en/starter/static-files.html
答案 1 :(得分:0)
你可以尝试后端看起来像这样。
app.use(express.static(__dirname + '/public'));
然后前端使用此提取位置,如
<img src="images/your image name" alt="" />
答案 2 :(得分:0)
尝试:
后端:
var path = require('path');
var app = express();
var express = require('express');
app.use(express.static(path.join(__dirname, 'public')));
前端:
<img src="/images/food-1-xxhdpi.png" alt="">
答案 3 :(得分:0)
我目前正在处理项目和下一段代码片段,对我来说很好:
app.use(express.static('public'));
当我尝试在.hbs中达到此目的时,很容易:
<img src='/images/image.jpg' alt='...' />
答案 4 :(得分:0)
只需在code
文件中的app.js
之后输入
app.use('/static/category/', express.static(__dirname+'/public/assets/category_pic/'));
现在我将通过使用以下code
<img src="/static/category/myimage.jpg" width="50" height="50">
这里我的实际路径是/public/assets/category_pic/
,但我使用上面的代码行将其转换为/static/category/
现在我可以使用此网址http://localhost:3000/static/category/myimage.jpg