Я пытаюсь обслуживать веб-сайт с разными статическими каталогами для разных маршрутов.
Если на маршрут /tools*
сделан запрос на получение, я бы хотел использовать *Каталог 1006 * в качестве базового каталога для моего кода внешнего интерфейса.
Если для маршрута /net*
сделан запрос на получение, я хотел бы использовать каталог /dist/netIdApp/
в качестве базовогокаталог для моего внешнего кода.
Если на маршрут * сделан запрос на получение, я хотел бы использовать каталог /dist/homeApp/
в качестве базового каталога для моего кода внешнего интерфейса.
Мне трудно определить, куда вставить строки кода app.use(express.static(__dirname + DIRECTORY));
.Сначала я пробовал приведенный ниже код, но быстро понял, что этот код был неправильным, потому что я не хочу объединять каталоги (у них есть конфликтующие имена файлов).
// Tools Routes
app.use(express.static(__dirname + '/dist/toolsApp/'));
app.get('/tools*', function(req, res) {
res.sendFile(path.join(__dirname + '/dist/toolsApp/index.html'));
});
app.use(express.static(__dirname + '/dist/netIdApp/'));
// Net-Id Authenticated Routes
app.get('/net*', function(req, res) {
res.sendFile(path.join(__dirname + '/dist/netIdApp/index.html'));
});
app.use(express.static(__dirname + '/dist/homeApp'));
// Default Route
app.get('*', function(req, res) {
res.sendFile(path.join(__dirname + '/dist/homeApp/index.html'));
});
Затем я попытался указать маршрутдля каждого из app.uses, как показано ниже.И это, казалось, только отправляло последний маршрут (я также пытался изменить последний app.use с '*' на '/', и это ничего не изменило).Результатом этого является то, что запросы на получение внешнего интерфейса заканчиваются добавлением символа '/' после имени файла, что делает его так, чтобы сервер Express интерпретировал запрос как каталог, а не обычный файл.Я действительно не уверен, почему это происходит.
// Tools Routes
app.use('/tools*', express.static(__dirname + '/dist/toolsApp/'));
app.get('/tools*', function(req, res) {
res.sendFile(path.join(__dirname + '/dist/toolsApp/index.html'));
});
app.use('/net*', express.static(__dirname + '/dist/netIdApp/'));
// Net-Id Authenticated Routes
app.get('/net*', function(req, res) {
res.sendFile(path.join(__dirname + '/dist/netIdApp/index.html'));
});
app.use('*', express.static(__dirname + '/dist/homeApp'));
// Default Route
app.get('*', function(req, res) {
res.sendFile(path.join(__dirname + '/dist/homeApp/index.html'));
});
Наконец, я попытался поместить строку в соответствующий app.get, но это не сработало правильно (экспресс не отправляетфайлы веб-интерфейса).
// Tools Routes
app.get('/tools*', function(req, res) {
app.use(express.static(__dirname + '/dist/toolsApp/'));
res.sendFile(path.join(__dirname + '/dist/toolsApp/index.html'));
});
// Net-Id Authenticated Routes
app.get('/net*', function(req, res) {
app.use(express.static(__dirname + '/dist/netIdApp/'));
res.sendFile(path.join(__dirname + '/dist/netIdApp/index.html'));
});
// Default Route
app.get('*', function(req, res) {
app.use(express.static(__dirname + '/dist/homeApp'));
res.sendFile(path.join(__dirname + '/dist/homeApp/index.html'));
});
Может ли кто-нибудь помочь мне определить, как лучше всего это сделать?Узел: v8.11.2 Экспресс: