node.js не будет загружать CSS-стили на всех страницах - PullRequest
0 голосов
/ 17 ноября 2018

Я пишу простой блог с нуля, чтобы выучить node.js + express.Однако я зашла в тупик, когда пытаюсь получить доступ к вложенному каталогу, стили не загружаются.Например:

app.get('/posts/new', (req, res) => {
  res.render('create')
});

не будет использовать стили, а просто будет использовать '/ posts'.

Есть идеи, что вызвало это?Вот полный код:

const path = require('path');
const expressEdge = require('express-edge');
const express = require('express');
const mongoose = require('mongoose');
const bodyParser = require('body-parser');

const app = new express();

mongoose.connect('mongodb://localhost:27017/node-blog', {
    useNewUrlParser: true
})
  .then(() => 'You are now connected to Mongo!')
  .catch(err => console.error('Something went wrong', err))

app.use(express.static('public'));
app.use(expressEdge);
app.set('views', __dirname + '/views');
app.use(bodyParser.json())
app.use(bodyParser.urlencoded({
  extended: true
}));

app.get('/', (req, res) => {
  res.render('index');
});

app.get('/posts/new', (req, res) => {
  res.render('create')
});

app.post('/posts/store', (req, res) => {
  console.log(req.body)
  res.redirect('/')
});
app.listen(4000)

А вот структура каталогов:

└── node-blog
    ├── database
    ├── node_modules
    ├── public
        ├── css
        ├── img
        ├── vendor
        ├── js
    ├── theme
    └── views
        ├── layouts

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

1 Ответ

0 голосов
/ 17 ноября 2018

вы можете загрузить статические ресурсы, создав виртуальный путь, подобный
app.use('/assets',express.static(__dirname + '/public/css')); где public - это каталог, в котором хранятся все ваши ресурсы, в котором css - это папка, в которой хранятся все ваши css-файлы, вы можете указать виртуальный путь в теге ссылки, атрибут href для загрузки css, например: если у вас есть файл шаблона, вы в нем пишете, тег ссылки <link rel="stylesheet" type="text/css" href="/assets/create.css"> Я пытался использовать ту же структуру каталогов, что и у вас, и пытался эмулировать ошибку, и исправил проблему с загрузкой CSS, вы можете ссылаться на https://github.com/ardnahcivar/Node.js-Code-/tree/master/11-17-18 код

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