#javascript #node.js #express
#javascript #node.js #экспресс
Вопрос:
Здравствуйте, я пишу экспресс-приложение, у меня есть общедоступный каталог, и в нем есть одно изображение. В app.js в файле я использую строку «app.use(express.static(__dirname ‘/ public/’));», поэтому express знает, как использовать эту папку.
Изображение загружается на некоторых страницах, а на других страницах — нет, оно загружается на страницы с URL-адресами, где только одно слово после базового URL, например www.amazonaws.com/blogs или www.amazonaws.com/login но изображение не загружается на страницы с URL-адресами, такими как www.amazonaws.com/blogs/best или www.amazonaws.com/blogs/102 .
Я использую файлы ejs, и все они находятся в одной папке, например, файл ejs «blogs», который используется для www.amazonaws.com/blogs работает нормально, но для «лучшего» файла ejs для www.amazonaws.com/blogs/best everthying работает нормально, за исключением того, что это изображение не загружается. Не уверен, почему это так? Спасибо за любую помощь.
Комментарии:
1. Не могли бы вы показать какой-нибудь код?
Ответ №1:
URL-адрес вашего изображения на веб-странице должен начинаться с /
, поэтому он не является URL-адресом, относящимся к пути. Судя по вашим симптомам, похоже, что URL-адрес вашего изображения на странице — это просто простое имя, например:
<img src="image.jpg">
Когда вы делаете это таким образом, браузер выбирает путь к вашей веб-странице и объединяет его с именем файла, и какой URL-адрес, который запрашивает браузер, будет отличаться в зависимости от того, есть ли у веб-страницы путь или нет. Если вместо этого вы сделаете это:
<img src="/image.jpg">
Затем браузер будет использовать только домен веб-страницы, а не путь, и вы получите согласованный URL-адрес независимо от того, в каком пути к веб-странице находится эта ссылка, потому что это абсолютный путь, а не относительный путь.
Комментарии:
1. Это была проблема, добавление косой черты исправило ее, большое спасибо