Многочисленные ошибки при обслуживании страниц HTML с помощью Express - PullRequest
0 голосов
/ 30 марта 2019

Я пытаюсь перенаправить страницы с помощью Express, но мне не удается перенаправить их с главной страницы. Я использую HTML в качестве движка просмотра и чувствую, что все настроено правильно, но я вижу ошибку: «TypeError: путь должен быть абсолютным или указать корень для res.sendFile»

Вот моя файловая структура:

root
-public
--images
--index.html
--main.css
--sponsors.html
--team.html
app.js

Я пробовал несколько файловых маршрутов, res.render против res.sendFile.

var express = require("express")
var app = express()
const port = 3000
var http = require("http")
const path = require('path')
app.set("view engine", "html")

app.listen(port, () => console.log(`Example app listening on port 
${port}!`))

app.use(express.static(__dirname + '/public'));

app.get('/sponsors', function(req, res) {
    res.sendFile('sponsors')
  })

  app.get('/', function(req, res) {
    res.sendFile('index')
  })

  app.get('/team', function(req, res) {
    res.sendFile('team')
  })

Ответы [ 2 ]

0 голосов
/ 30 марта 2019

Удалите следующий метод маршрута.

// remove the following code
app.get('/', function(req, res) {
   res.sendFile('index')
});

Обновите путь по умолчанию для статического метода, который вы уже написали.

app.use('/', express.static(__dirname + '/public'));
0 голосов
/ 30 марта 2019

Для рендеринга из механизма представления используйте res.render(), а не res.sendFile().

И ваш механизм просмотра должен быть в состоянии найти файл с таким именем и соответствующим расширением файла в пути для механизма просмотра.

Если вы хотите использовать res.sendFile()без механизма просмотра вы должны указать фактическое имя файла или включить опцию root, которая указывает, где искать.Вы также должны использовать фактическое расширение файла в имени файла.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...