Script путь для ExpressJS в node_modules
У меня есть index.jade в моей папке 'views'.
doctype html
html
head
title= title
link(rel='stylesheet', href='/stylesheets/main.css')
script(src='../node_modules/some_package/package_script.min.js')
У меня есть index.js в папке маршрутов с маршрутизатором:
router.get('/', function(req, res) {
res.render('index', { title: 'title goes here' })
});
Я продолжаю получать ошибку 404, когда пытаюсь получить доступ к папке node_modules в jade файле в консоли:
GET /node_modules/some_package/package_script.min.js 404 1ms - 19b
Как именно работает путь к файлу/как его исправить для Express, когда я пытаюсь получить доступ к script в node_modules? Нужно ли копировать необходимые файлы javascript и размещать их в папке "javascripts" под "public", чтобы она работала?
Спасибо!
Ответы
Ответ 1
Вау! Держись... node_modules
является частным каталогом и не должен быть открыт. По умолчанию каталог public
представляет собой общедоступный корневой путь для статических файлов:
app.use(express.static(path.join(__dirname, 'public')));
В каталоге есть javascripts
. Скопируйте script там и измените атрибут src
в своем шаблоне, чтобы:
/javascripts/package_script.min.js
Если вы действительно хотели бы обслуживать node_modules
, что было бы плохой идеей, добавьте следующее ниже строки app.use(express.static(...));
выше:
app.use(express.static(path.join(__dirname, 'node_modules')));