我试图使用mongoDB数据库和Node.js + express创建一个小的登录页面。我是Node.js的新手,所以解决方案可能比我想象的要容易。 问题是:当我连接到服务器页面时提供HTML文件时,我无法使用html文件中引用的JavaScript文件。我该如何解决? P.s index.html和client.js文件都位于名为" client"的文件夹中。
代码:
var express = require('express');
var path = require('path');
var app = express();
app.use(express.static(__dirname + 'client'));
app.get('/', function(req, res) {
res.sendFile(path.join(__dirname + '/client/index.html'));
});
HTML文件:
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>Login</title>
<meta name="description" content="Login Page">
<meta name="author" content="AlbertoCoder">
<script src="/client/client.js"></script>
</head>
<body>
</body>
</html>
答案 0 :(得分:5)
您可以使用它,但您需要通过有效路径从服务器提供该javascript文件。
在您的HTML中,您尝试从/client/client.js
这里的提示是:
想象一下服务器的以下网址http://myserver:8080/
现在,您的HTML正在尝试通过http://myserver:8080/client/client.js
如您所见,您的服务器没有提供该资产,因此您将无法检索该js文件。
执行以下操作:
app.get('/client/client.js', function(req, res) {
res.sendFile(path.join(__dirname + '/client.js'));
});
app.get('/', function(req, res) {
res.sendFile(path.join(__dirname + '/client/index.html'));
});
答案 1 :(得分:2)
创建虚拟路径。
app.use('/client', express.static(path.join(__dirname, 'client')));