javascript - 如何在 NodeJS 中提供简单的静态文件和 html?

标签 javascript html node.js express static-files

我正在尝试使用 express.static() 在 NodeJS 中发送一个 HTML 文件及其 CSS 和 JS 文件,但它不起作用。

我在一些视频中做了同样的事情,但我不知道问题出在哪里。而且当我在没有服务器的情况下打开 index.html 时,它会显示样式。

这是我的 app.js(服务器):

app.use(express.static('public'));
app.get("/", (req, res)=>{
    res.sendFile(`${__dirname}/index.html`);
});

HTML:

    <head>
        <link href="./public/styles.css" rel="stylesheet" type="text/css"/>
        <script src="./public/jQuery.js"></script>
        <script src="./public/main.js"></script>
    </head>

我的公共(public)文件夹:

-node_modules
-public
    jQuery.js
    main.js
    styles.css
app.js
index.html
package.json
package-lock.json

提前致谢。

最佳答案

app.use(express.static('public'));中,字符串'public'指的是目录,其中该模块应该搜索静态文件,而不是它应该用于搜索的URL 路径

src="/jQuery.js" 将映射到 public/jQuery.js 文件。

要将以 /public/ 开头的 URL 映射到 public 目录,您需要将其指定为要使用的第一个参数:

app.use('/public', express.static('public'));

然后 src="/public/jQuery.js" 将映射到 public/jQuery.js 文件。

关于javascript - 如何在 NodeJS 中提供简单的静态文件和 html?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55316675/

相关文章:

html - 在 DIV 样式菜单中跨行跨行文本

php - Magento 在静态 block 中调用子 html

node.js - 为什么 Q 延迟在 Node.js 上这么慢?

javascript - 用于链接 header 的 Node.js 解析器?

javascript - jquery悬停功能显示和隐藏元素

Javascript:构造函数与对象初始化器速度

php - 如何在 DIV 中正确放置一些内容?

javascript - 将复杂的数组渲染成数据表

node.js - 如何使用摘要身份验证在 MongoDB Atlas API 上进行身份验证?

node.js - gulp-sourcemaps 生成一个空的名称属性