Невозможно создать символическую ссылку на статические файлы с помощью express.static () в Next js - PullRequest
0 голосов
/ 01 апреля 2019

Я создаю прототип реализации NextJS со следующим кодом сервера:

import express from 'express';
import next from 'next';
import path from 'path';

const dev = process.env.NODE_ENV !== 'production';
const app = next({ dev });
const handle = app.getRequestHandler();

dotenv.config();

app.prepare().then(() => {
  const server = express();

  // Custom build resources aliases
  // ---------------------------------------------------------------------
  server.use('/favicon.ico', express.static(path.join(__dirname, 'static', 'images', 'icons', 'favicon.ico')));
  // ---------------------------------------------------------------------

  // Custom/dynamic routes
    // ---------------------------------------------------------------------
  server.get('/p/:id', (req, res) => {
    const actualPage = '/post';
    const queryParams = { title: req.params.id };
    app.render(req, res, actualPage, queryParams);
  });
  // ---------------------------------------------------------------------

  // Default route
  // ---------------------------------------------------------------------
  server.get('*', (req, res) => handle(req, res));
  // ---------------------------------------------------------------------

  // Express: Listener
  server.listen(process.env.WEB_PORT, () => {
    console.log(`Server listening on port: ${process.env.WEB_PORT}...`);
  });
}).catch((ex) => {
  console.error(ex.stack);
  process.exit(1);
});

Как видно, мои статические ресурсы находятся в папке /static/. Из них у меня есть файл favicon на /static/images/icons/favicon.ico. Я могу зайти на этот файл, используя https://schandillia.com/static/images/icons/favicon.ico. Однако, когда я пытаюсь нажать https://schandillia.com/favicon,, он выдает 404. Правильно ли я не использую express.static()?

...