如何在NodeJS中与HTML一起提供简单的静态文件?

时间:2019-03-23 17:49:52

标签: javascript html node.js express static-files

我正在尝试使用express.static()在NodeJS中发送带有CSS和JS文件的HTML文件,但是它不起作用。

我做的和某些视频一样,但是我不知道问题出在哪里。而且,当我在没有服务器的情况下打开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>

我的公用文件夹:

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

谢谢。

1 个答案:

答案 0 :(得分:2)

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文件。