Я учусь использовать NodeJS и Express и просто использовал «экспресс» для создания строительных лесов для проекта. Я не понимаю, цели:Почему опускает строку app.use (express.static (__ dirname, 'public')) останавливает мои html-страницы от загрузки файлов css?
app.use(express.static(path.join(__dirname, 'public')));
Моего понимание app.use() является то, что он загружает функцию, как промежуточные, так app.use(express.static(path.join(__dirname, 'public')))
должен нагружать функцию, не так ли? Эта функция загружает пути к некоторым файлам, которые я объявляю статическими?
В моем файле layout.jade, у меня есть эта линия в голове:
link(rel='stylesheet', href='/stylesheets/style.css')
Как мое приложение знать, чтобы начать HREF связь с «/ общественность» (если это то, что он делает), когда я установил линию app.use(express.static)
? Потому что, когда я избавляюсь от строки app.use(express.static)
, он дает 404 для поиска файла css, даже когда я изменяю href на '/public/stylesheets/style.css'.
И как он знает, что я пытаюсь получить доступ к этому статическому файлу? Что делать, если у меня есть файл с именем «root/stylesheets/style.css», а также «root/public/stylesheets/style.css»?
Спасибо за быстрый ответ. Но как 'layout.jade' знает, где найти' style.css'? Доступен ли он через http: // example.com/ stylesheets/style.css? –
Ну, в каталоге '/ public' на вашем сервере есть каталог' stylesheets', внутри которого есть 'style.css'. 'express.static()' знает, что рекурсивно решает каталоги. –
Что произойдет, если у меня есть два файла 'style.css'? Он просто возвращает первый найденный? Так что 'express.static (path.join (__ dirname, 'public'))' служит всем файлам '/' (это были бы все файлы или просто прямые дочерние файлы '/'?) С содержимым '/public', и вот как 'layout.jade' может получить доступ к'/stylesheets/style.css'? –