Если вы хотите, чтобы ваши ресурсы, такие как assets/app.css
, не зависели от URL-адреса страницы, с которой они пришли, чтобы они могли жить где угодно в вашей файловой системе, то прекратите использовать относительные URL-адреса. Используйте абсолютные URL-адреса для ссылки на них на вашей веб-странице, например:
/assets/app.css
/assets/app.js
Затем вы можете очень легко настроить маршрут express.static()
для обработки их для всех страниц.
app.use(express.static("put directory here that contains the assets folder"));
Что, я понимаю из вашего вопроса, будет следующим:
app.use(express.static('/Users/report'));
Когда Express получает запрос на /assets/app.css
, он проверяет обработчик маршрута express.static()
. Если вы указали родительский каталог для своей папки assets
в express.static()
, тогда этот обработчик маршрута будет искать В ЭТОМ ДИРЕКТОРИИ для /assets/app.css
, что вам и нужно.
Итак, в приведенном выше примере запрос на /assets/app.css
будет скомбинирован с путем, указанным в express.static('/Users/report')
, и будет выглядеть:
/Users/report/assets/app.css
Что бы вы хотели.
Если путь, который вы используете для ресурса в своем HTML-файле, не начинается с http://
или с /
, то браузер считает, что он относится к URL-адресу страницы, поэтому браузер выбирает путь веб-страницу и подготавливает ее к URL, указанному в вашем HTML. Это действительно усложняет статические ресурсы, поэтому обычно это не то, что вам нужно. Вместо этого вы хотите сделать их абсолютными путями, убедившись, что они начинаются с /
. Затем их легко настроить, потому что маршрут будет одинаковым независимо от того, какой путь содержит страница, на которой они находятся.