Не удается добраться до папки * stati c publi c с ExpressJS и Zeit Now ('now dev') - PullRequest
2 голосов
/ 02 апреля 2020

Я создал приложение ExpressJS с механизмом управления рулем и запуском приложения через npm start, мне все хорошо, так как все ресурсы загружаются.

Вот моя структура папок :

- public
  - css
  - svg
  - uploads
- views
  - layouts
  > home.handlebars

А вот соответствующие материалы моего индекса. js:

const express = require('express');
const exphbs = require('express-handlebars');
const path = require('path');
const fs = require('fs');
const port = 5000;
const index = express();


app.set('views', path.join(__dirname, '/', 'views'));
app.use(express.static(__dirname + '/public'));
app.engine('handlebars', exphbs({
    defaultLayout: 'main',
    layoutsDir: path.join(__dirname, '/', 'views', 'layouts')}
));
app.set('view engine', 'handlebars');

Вот содержимое моего сейчас. json:

{
    "version": 2,
    "builds": [
        {
            "src": "index.js",
            "use": "@now/node-server"
        }
    ],
    "routes": [
        {
            "src": "/",
            "dest": "/",
            "methods": ["GET"]
        },
        {
            "src": "/justaroute",
            "dest": "/",
            "methods": ["POST"]
        }
    ]
}

Проблема

Как я уже говорил выше, использование npm start показывает мое рабочее приложение, но с использованием now dev my приложение не может найти какие-либо ресурсы (в консоли отображается 404): http://localhost:3000/css/icons.css net::ERR_ABORTED 404 (Not Found) http://localhost:3000/uploads/[...].jpg 404 (Not Found).

Похоже, что

app.set('views', path.join(__dirname, '/', 'views'));

задает путь к представлениям как root для активов загружаются представления.

Внутри представлений Я загружаю активы следующим образом:

<link rel="stylesheet" type="text/css" href="css/icons.css">

Я уже пытался добавить /public/[...] к ссылкам на ресурсы и получить папку publi c явно, добавив app.set('public', path.join(__dirname, '/', 'public'));, в результате чего Chrome все еще не найдет ресурсы: http://localhost:3000/public/css/icons.css net::ERR_ABORTED 404 (Not Found)

...