Когда я пытаюсь запустить res.sendfile(__dirname + '/index.html'); с помощью экспресс-режима, первый параметр start добавляется к статическому пути к каталогу, что приводит к ошибке «Не найдено».
вот мой код.
app.get('/start/me', (req, res) => {
res.sendfile(__dirname + '/index.html');
});
вот что происходит.
GET http: // локальный: 3000 / старт / статический / jquery.js 404 (не найдено)
Но если я удалю /me, он будет работать нормально.
маршрут для обработки файлов статики:
app.use('/static', express.static(__dirname + '/static'));
на интерфейсе
<script src = "./static/jquery.js"></script>
Я не смог найти решение этой проблемы. Заранее спасибо.
Я обновил вопросы.
Покажи, как ты включаешь jquery во внешний интерфейс. <script ....>
Проверьте мой ответ, отправьте jquery из: /static/jquery.js, удалите точку (.)





Проблема в том, что вы обслуживаете jquery с неправильного пути.
Согласно вашему маршруту /static, jquery.js должен обслуживаться из:
http://localhost:3000/static/jquery.js
Итак, ваш тег скрипта должен быть:
<script src = "/static/jquery.js"></script>
<!-- instead of src = "./static/jquery.js" -->
При добавлении ./ ваш скрипт обслуживается не из корня, а относительно текущего URL. Итак, если вы находитесь в /foo/bar/, он будет искать jquery.js в /foo/bar/static/jquery.js.
Это решило мою проблему. Но есть ли другой способ решить эту проблему, например req.url, чтобы изменить URL-адрес перед отправкой файла. ?
Пожалуйста. Но я не понимаю, о чем вы спрашиваете. Я не понимаю, почему вы хотите использовать req.url для решения такой простой задачи, как эта, это все усложнит.
Покажите свой маршрут обработки статических файлов, но похоже, что у вас его нет. Все, что мы видим здесь, это то, что вы обслуживаете
index.html, но ничего не обслуживаетеjquery.js.