Вопрос:

Node.js обслуживает HTML, но не может загружать файлы скриптов на обслуживаемой странице

javascript html node.js mongodb express

2051 просмотра

2 ответа

10 Репутация автора

Я пытаюсь сделать небольшую страницу входа, используя базу данных mongoDB и Node.js + Express. Я новичок в Node.js, так что, возможно, решение проще, чем я думал. Проблема заключается в том, что при подключении файла HTML при подключении к странице сервера я не могу использовать файл JavaScript, указанный в файле html. Как я могу это исправить? Файлы ps 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>
Автор: Alberto Calabrese Источник Размещён: 01.01.2018 02:59

Ответы (2)


5 плюса

27134 Репутация автора

Решение

Вы можете использовать его, но вам нужно передать этот файл javascript с вашего сервера по правильному пути.

В своем HTML вы пытаетесь получить файл JavaScript из /client/client.js

Подсказка здесь:

Представьте себе следующий URL вашего сервера http://myserver:8080/

Теперь ваш HTML пытается получить файл JS через 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'));
});
Автор: Ele Размещён: 01.01.2018 03:07

2 плюса

93 Репутация автора

Создайте виртуальный путь.

app.use('/client', express.static(path.join(__dirname, 'client')));
Автор: Kasper Seweryn Размещён: 01.01.2018 03:12
Вопросы из категории :
32x32