Вот моя файловая структура:
app -
\public
\images
\dist
index.html
...other bundles here
Как вы видите, у меня есть две папки, восстановленные связанные файлы идут в dist, а файлы статических изображений становятся открытыми.
В моем коде иногда я импортирую файлы изображений (png, svg) через веб-пакет, и они всегда отображаются.Но иногда мне нужно получить изображения через URL в HTML-код.Они не отображаются на герою, но находятся в localhost.
Вот мои настройки приложения (Экспресс):
import express from 'express';
import cors from 'cors';
import path from 'path';
import logger from 'morgan';
import bodyParser from 'body-parser';
import router from './router';
import favicon from 'serve-favicon';
//import compression from 'compression';
global.PUBLIC = path.join(__dirname, '../public');
global.DIST = path.join(__dirname, '../dist');
var debug = require('debug')('app');
const app = express();
// app.use(cors());
app.use(function(req, res, next) {
res.header("Access-Control-Allow-Origin", "*");
res.header("Access-Control-Allow-Headers", "Origin, X-Requested-With, Content-Type, Accept");
next();
});
//app.options('*', cors());
app.use(favicon(path.join(__dirname, '../public', 'favicon.ico')));
app.disable('x-powered-by');
// View engine setup
// app.set('views', path.join(__dirname, '../views'));
// app.set('view engine', 'pug');
app.use(logger('dev', {
skip: () => app.get('env') === 'test'
}));
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({ extended: false }));
if (process.env.NODE_ENV === 'production') {
app.use(express.static(DIST));
app.use("/public", express.static(PUBLIC));
}
router(app);
// Catch 404 and forward to error handler
app.get('/', (req, res, next) => {
const err = new Error('Not Found');
err.status = 404;
next(err);
});
// Error handler
app.use((err, req, res, next) => { // eslint-disable-line no-unused-vars
//logger.error(err);
debug(err);
if (req.app.get('env') !== 'development' && req.app.get('env') !== 'test') {
delete err.stack;
}
res.status(err.statusCode || 500).json(err);
});
export default app;
У меня есть изображения, встроенные с помощью этого источника:
src='./../public/images/nameofimage.png'
Я не уверен, что это правильный путь, или если мне нужно настроить мои статические файлы в экспресс-коде по-другому.
Может кто-нибудь помочь?