Я уже просматривал эту информацию в Интернете и подозреваю, что ответ "вы не можете", но, поскольку я еще не нашел ответ, который был бы настолько окончательным, я думаю, его стоит спросить здесь. Самое близкое, что я обнаружил, касающееся этой проблемы, это загадка завершающего слеша и относительного URL (который в настоящее время недоступен, но у Google есть текстовая кешированная версия).
Из-за традиционного дизайна URL-адресов с конечной косой чертой, интерпретируемой как каталог, и тех, у которых конечная косая черта не интерпретируется как файловый ресурс, а относительные URL-адреса работают вне каталога, тогда, если текущая страница имеет путь
/lorem/ipsum/dolor
относительный путь
not-dolor
разрешится как
/lorem/ipsum/not-dolor
что естественно имеет смысл, когда /lorem/ipsum/dolor
рассматривается как файловый ресурс, dolor
, находящийся в каталоге, /lorem/ipsum/
; типичные, интуитивные соглашения. Однако, поскольку значительное количество веб-сайтов в настоящее время являются динамическими приложениями без сопоставления файловой системы для каждого URL-адреса, это может вызвать головную боль, потому что иногда вы действительно хотите работать по отношению к пути, как если бы в текущем проекте имел место косая черта.
Существует ли какой-либо разумный способ ("не включающий обработку на стороне сервера/переменные/другие или JavaScript") использовать относительный путь, основанный на текущем пути, а не "каталог" текущего пути? Так что not-dolor
может быть относительно /lorem/ipsum/dolor
и производить
/lorem/ipsum/dolor/not-dolor
Я не знаю обходного пути, связанного с чем-то вроде ./not-dolor
, поскольку .
все еще (/lorem/)ipsum/
. Если не считать перенаправления на конечную косую черту и проверки того, что все ресурсы имеют URL-адреса, соответствующие характеру каталогов и файловых связей, или изменения спецификации (!), Есть ли способ решить эту проблему?