Я создаю приложение и пытаюсь отправить электронное письмо, которое использует Pug в качестве движка шаблонов, и у меня возникают проблемы с загрузкой статических файлов в мой шаблон.Мой код успешно устанавливает общую папку моего проекта как статическую, и я могу получить доступ к содержимому файлов в браузере.
Однако файлы не загружаются в шаблон Pug, когда я использую относительный путь по отношению к общедоступному каталогу.Я также попытался указать их абсолютный путь, который действительно работает.
Структура каталога моего приложения:
app
+/public
+/css
style.css
image.png
+/src
+/client
+/server
+/templates
+/verify
html.pug
text.pug
+server.js
server.js
require('dotenv').config({path: __dirname + "/../../.env"});
const path = require('path');
const express = require('express');
const app = express();
const port = 8080;
const cors = require('cors');
const bodyParser = require('body-parser');
app.use(cors());
app.use(bodyParser.urlencoded({extended: true }));
app.use(bodyParser.json());
app.set('view engine', 'pug');
app.use(express.static(path.join(__dirname, '../../', 'public')));
const nodemailer = require('nodemailer');
const Email = require('email-templates');
const transporter = nodemailer.createTransport({
address: 'smtp.gmail.com',
host: 'smtp.gmail.com',
port: 465,
secure: true,
service: 'gmail',
auth: {
user: process.env.SENDER_EMAIL,
pass: process.env.SENDER_PASS
},
authentication: 'plain',
enable_stattls_auto: true
});
const email = new Email({
transport: transporter,
views: {
root: './templates'
},
send: true,
preview: false
});
email.send({
template: 'verify',
message: {
from: process.env.SENDER_EMAIL,
to: '*email*',
subject: 'Activise - Email Verification',
},
locals: {}
})
.then(() => console.log('EMAIL SENT'))
.catch(err => console.log("ERROR: " + err));
app.listen(port, () => console.log('Server listening for requests on port 8080!'))
Вот и мой код Pug
html.pug
doctype html
html
head
title=title
link(rel="stylesheet", href="/css/style.css" type="text/css")
body
.email-text
img(src="/image.png", alt="Application logo")