#javascript #node.js #express
#javascript #node.js #выражать #экспресс
Вопрос:
Я написал простой веб-сервер, используя Express для отображения HTML-страницы.
const path = require('path');
const app = express();
app.use(express.static(__dirname '/src'));
app.get('/', function(req, res) {
res.sendFile(path.join(__dirname '/src/index.html'));
});
app.listen(3000, ()=> console.log('Listening on port 3000'))
В html я вызываю локальный файл js следующим образом:
<script src="./src/file.js"><script>
Когда страница загружается, файлы JS не загружаются, вызывая ошибку:
GET http://localhost:3000/src/file.js net::ERR_ABORTED 404 (Not Found)
Конечно, этот адрес не существует, следовательно, он не загружается.
Любая помощь в этом вопросе очень ценится!
Комментарии:
1. Если страница обслуживается из,
localhost:3000
тогда./
это будет этот домен. Я не уверен, что понимаю вопрос.2. Используйте
<script src="/file.js"><script>
вместо этого. В вашем HTML вам нужно использовать URL-адреса, а не пути файловой системы (это потому, что браузер запрашивает скрипт с сервера, поэтому предполагается, что это допустимый URL-адрес, который будет работать «извне» сервера; проблема, которую вы описываете в заголовке вашего вопроса, — единственный способ, которым это будет работать; браузер не имеет прямого доступа к жесткому диску сервера)3. Я пробовал «/file.js » вместо «./file.js » также, но я сталкиваюсь с той же проблемой.
4. Исходя из
express.static
строки, если вы введетеhttp://localhost:3000/file.js
в адресную строку вашего браузера и нажмете enter, вы должны увидеть скрипт.5. Теперь это работает! /src был ненужным. Если вы укажете это в качестве ответа, я могу принять это и поддержать вас. Спасибо!