Javascript-форум (https://javascript.ru/forum/)
-   Node.JS (https://javascript.ru/forum/node-js-io-js/)
-   -   не показывает изображение (https://javascript.ru/forum/node-js-io-js/80978-ne-pokazyvaet-izobrazhenie.html)

riaron 05.09.2020 20:57

не показывает изображение
 
не показывает хотя в содержимом страницы этот код есть.
<img src="C:\xampp\htdocs\mysite.local/files/sphoto/610189311633orig.jpg">

Сервер никаких ошибок не выдает
вот код
var express = require('express');
var mysql = require('mysql');
const fileUpload = require('express-fileupload');
var app = express();
const bodyParser = require("body-parser");
app.use(fileUpload());
app.use('/smart', express.static(__dirname + '/files/sphoto/'));
///
///	Create connection to MySQL database server.
/// 
function getMySQLConnection() {
	return mysql.createConnection({
	  host     : 'localhost',
	  user     : 'root',
	  password : '',
	  database : 'elektronika'
	});
}

app.set('view engine', 'pug');
app.get('/smart', function(req, res) {
	var smartphopneList = [];

	// Connect to MySQL database.
	var connection = getMySQLConnection();
	connection.connect();

	// Do the query to get data.
	connection.query('SELECT `id`,`prod`,`name`,`sim`,`display`,`razresh`,`acum`,`proc`,`oper`,`sd`,`cam`,`gps`,`description`,`giroscope`,`payment`,`photo` FROM `smartphone` ', function(err, rows, fields) {
	  	if (err) {
	  		res.status(500).json({"status_code": 500,"status_message": "internal server error"});
	  	} else {
	  		// Loop check on each row
	  		for (var i = 0; i < rows.length; i++) {

	  			// Create an object to save current row's data
		  		var smartphopne = {
		  			'id':rows[i].id,
		  			'prod':rows[i].prod,
		  			'name':rows[i].name,
		  			'sim':rows[i].sim,
		  			'display':rows[i].display,
		  			'razresh':rows[i].acum,
		  			'acum':rows[i].acum,
		  			'proc':rows[i].proc,
		  			'oper':rows[i].oper,
		  			'sd':rows[i].sd,
		  			'cam':rows[i].cam,
		  			'gps':rows[i].gps,
		  			'description':rows[i].description,
		  			'giroscope':rows[i].giroscope,
		  			'payment':rows[i].payment,
		  			'photo':rows[i].photo
		  		}
		  		// Add object into array
		  		smartphopneList.push(smartphopne);
	  	}

	  	// Render index.pug page using array 
	  	res.render('index', {"smartphopneList": smartphopneList});
	  	}
	});

	// Close the MySQL connection
	connection.end();
	
});

вот пуг
html
	head
		title= '123'
		style
			include style.css
			include bootstrap.css

	body
		h1= 'Person List'
	table
		for smart in smartphopneList
			div= "id" + smart.id
			img(src=""+smart.photo+"")
			div= "Производитель: " + smart.prod
			div='Модель: ' + smart.name
			div='Количество СИМ карт: ' + smart.sim
			div='Диагональ дисплея: ' + smart.display
			div='Разрешение дисплея: ' + smart.razresh
			div='Аккумулятор: ' + smart.acum
			div='Процессор: ' + smart.proc
			div='Поддержка SD: ' + smart.sd
			div='Камеры: ' + smart.cam
			div='Датчик GPS: ' + smart.gps
			div='Описание: ' + smart.description
			div='Гироскоп: ' + smart.giroscope
			div='Безконтактная оплата: ' + smart.payment

MC-XOBAHCK 06.09.2020 10:09

А если так попробовать:
<img src="/files/sphoto/610189311633orig.jpg">

типа как от корня сайта.

Ещё возможно что используется система которая в htaccess файле имеет белый список директорий. Тогда нужно добавить директорию files в белый лист.

riaron 06.09.2020 13:45

не помогло

laimas 06.09.2020 20:04

Цитата:

Сообщение от riaron
хотя в содержимом страницы этот код есть

Такого пути src="C:\..... даже на локальном сервере, не говоря уже о удаленном, быть не должно.

riaron 08.09.2020 13:32

при неправильном вводе адреса показывает что неправильный путь, при правильном ничего не показывает

laimas 08.09.2020 16:50

Я не знаю node, какие проблемы на нем, но путь он и в Африке путь. Абсолютный путь вы может только наблюдать, если обращаетесь к файлу по такому пути. При это в Windows это будет путь x:\a\b\name.ext, а не разнокалиберные слеши. А подставлять пути абсолютные в src нельзя, так как реально таких путей у клиентов не будет. И ручной ввод путей в редких случаях требуется, пути формируются скриптом, в противном случае это большие проблемы.

Сформируйте путь относительный, выведите на экран имя каталога текущего, относительно его и постройте путь, проверьте.

riaron 08.09.2020 21:00

вставляю относительный путь показывает что неверное изображение

laimas 09.09.2020 02:34

Значит в отладчике браузера проверить к чему реально обращение - если на src изображения в инспекторе навести мышь, то будет показан полный путь начинания с домена. Если он правильный, значит точно с файлом проблемы.

riaron 13.09.2020 12:20

надо было путь писать принимая во внимание app.use('/smart', express.static(__dirname + '/files/sphoto/'));


Часовой пояс GMT +3, время: 20:43.