我尝试使用一些本地CSS文件、本地JS文件和两个远程文件作为链接来呈现我的HTML文件
但我在浏览器里看到的只是一个普通的HTML
下面是我的HTML文件(index.html)的顶部:
<script src="src/drawflow.js"></script>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.4.1/js/bootstrap.min.js"></script>
<link rel="stylesheet" type="text/css" href="src/index.css" />
<link
rel="stylesheet"
href="https://maxcdn.bootstrapcdn.com/bootstrap/3.4.1/css/bootstrap.min.css"
/>
这是我的服务器代码(app.js):
"use strict";
const express = require("express");
const path = require("path");
const app = express();
app.use(express.static(__dirname + "/src"));
app.get("/", (req, res) => {
res.sendFile(path.join(__dirname + "/index.html"));
});
app.listen(process.env.port || 4000, () => {
console.log("listening to port 4000...");
});
下面是我的文件结构:file structure
index.html文件在浏览器中打开时工作正常,但无法从服务器中正确获取。
有什么想法吗?
发布于 2020-07-14 05:54:50
感谢Chris Short的评论
我换掉了
app.use(express.static(__dirname + "/src"));
至
app.use('/src', express.static(path.join(__dirname + '/src')));
而且它工作得很完美。
非常感谢。
发布于 2020-07-14 05:51:58
如果我没理解错的话。您的HTML文件的资源未正确获取,因此当您通过浏览器访问时,您的HTML将显示为裸体。有了这样的理解,您的资源不能正确加载的原因是由于app.js的设置方式。
目前您正在尝试访问标头中的href="src/index.css"
,但是您的所有资产都将在您的网站根目录中找到。Expressjs将所有app.use
语句作为中间件处理,默认情况下会附加到网站的根目录。如果你想从"src“访问它,那么你需要像这样设置你的express.static。
app.use("/src", express.static(path.join(__dirname, "/src"));
有关更多信息,请参阅以下内容
https://stackoverflow.com/questions/62884636
复制相似问题