Хотя я не новичок в узле или экспрессе (что делает его более расстраивающим), но на этот раз я не могу заставить работать express.static для меня. Ниже приведена моя структура каталогов.
├── node_modules
│ ├── accepts
│ │ ├── HISTORY.md
│ │ ├── LICENSE
.
.
.
.
├── favicon.ico
├── package-lock.json
├── package.json
├── mynode.js
└── stk
├── img
│ ├── img1.jpg
│ └── img2.jpg
├── index.html
└── index2.html
Это мой js файл
const express = require('express');
const app = express();
const http = require("http");
const https = require("https");
const fs = require("fs");
var privateKey = fs.readFileSync("/etc/letsencrypt/live/xxxxxxxxx/privkey.pem","utf8");
var certificate = fs.readFileSync("/etc/letsencrypt/live/xxxxxxxxx/fullchain.pem","utf8");
var credentials = { key: privateKey, cert: certificate };
var server = https.createServer(credentials, app);
app.use(express.static('stk'));
server.listen(8080);
app.get("/", function (req, res) {
res.sendFile(__dirname + "/stk/index.html");
});
И это в моей разметке index.html
<div style="width:200px; height:200px; overflow: hidden;">
<img src="img/img1.jpg" alt="image1">
</div>
<a href="index2.html">index2</a>
Я не могу загрузить img1.jpg на мою HTML-страницу. Я также не могу перейти к index2.html.
Как ни странно, если я положу img folder и index2.html на верхний уровень, а также в папку stk, только тогда я могу загрузить img1.jpg в мой index.html и перейти к index2.html. Это означает, что я должен поместить эти файлы в два места (верхний уровень, а также в папку stk).
Я пытался
app.use(express.static('stk'));
и это
app.use(express.static(__dirname +'/stk'));
но, похоже, ничего не работает.