gpt4 book ai didi

javascript - NodeJS + Express 提供的 HTML 文件未加载 js 文件?

转载 作者:IT老高 更新时间:2023-10-28 23:14:52 25 4
gpt4 key购买 nike

我正在运行一个 NodeJS 服务器,它使用包罗万象的路由来提供文件“index.html”。在该文件中,我链接到同一目录中的一个 javascript 文件。该 javascript 文件未正确加载。我的控制台中的错误显示为“Uncaught SyntaxError: Unexpected Token <”,经过研究似乎意味着我的 JS 文件的路径不正确。但是,js文件与'index.html'位于同一目录中,我这样引用它应该是正确的吗?

这是我的代码

server.js

var express = require('express');
var app = express();
var config = require('./config');
var apiRouter = express.Router();
var mongoose = require('mongoose');
var bodyParser = require('body-parser');
var User = require('./app/models/User');
var jwt = require('jsonwebtoken');
var path = require('path');

//Set the public folder
app.use(express.static('/public'));

//Allows us to parse POST data.
app.use(bodyParser.urlencoded({ extended: true }));
app.use(bodyParser.json());

mongoose.connect(config.db);

var apiRouter = require('./app/routes/api')(app, express);

app.use('/api', apiRouter);

//MEAN apps use a catchall after any routes created by Node.

app.get('*', function(req, res) {
res.sendFile(path.join(__dirname, 'public/app/views/index.html'));
});

app.listen(1337);

console.log('Server started at ' + Date());

public/app/views/index.html

<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8">
<script src="./test.js"></script>
<head>
<body>
<h1>Served by node + express.</h1>
</body>
</html>

public/app/views/test.js

console.log('test.js loaded');

最佳答案

你应该像这样设置你的静态文件夹

app.use(express.static(__dirname + '/public'));

此外,您的 html 文件将在/public 文件夹中查找您的脚本文件。您需要为您的 index.html 文件提供脚本文件的正确路径。

<script src="/app/views/test.js"></script>

关于javascript - NodeJS + Express 提供的 HTML 文件未加载 js 文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31622394/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com