Проблема CSS с Node.JS / EJS - PullRequest
       9

Проблема CSS с Node.JS / EJS

0 голосов
/ 25 февраля 2019

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

Мой CSS-файл игнорируется при определенных обстоятельствах.

Итак, в моем файле app.js есть этот код, определяющий настройки двигателя моего вида

// view engine setup    
app.set('views', path.join(__dirname, 'views'));
app.set('view engine', 'ejs');

app.use(logger('dev'));
app.use(express.json());
app.use(express.urlencoded({ extended: false }));
app.use(cookieParser());
app.use(express.static(path.join(__dirname, 'public')));

В моем файле index.js приведен следующий код для страницы UserList

/* GET Userlist page. */
router.get('/userlist', function(req, res) {
    var db = req.db;                               // (1) Extract the db object we passed to our HTTP request
    var collection = db.get('usercollection');    // (2) Tell our app which collection we want to use
                                                 // (3) Find (query) results are returned to the docs variable
    collection.find({},{},function(e,docs){
        res.render('userlist', { "userlist" : docs });    // (4) Render userlist by passing returend results to said variable
    });
});

Наконец, моя страница userlist.ejs выглядит следующим образом:

<!DOCTYPE html>
<html>
  <head>
    <title>User List</title>
    <link rel='stylesheet' href='/stylesheets/style.css' type="text/css" />
  </head>
  <body>
    <h1>User List</h1>
    <ul>
      <%
        var list = '';
        for (i = 0; i < userlist.length; i++) {
          list += '<li><a href="mailto:' + userlist[i].email + '">' + userlist[i].username + '</a></li>';
        }
        return list;
      %>
    </ul>
  </body>
</html>

Но когда я запускаю свою страницу, файл CSS не загружается.Однако, если я исключу этот код:

<%
        var list = '';
        for (i = 0; i < userlist.length; i++) {
          list += '<li><a href="mailto:' + userlist[i].email + '">' + userlist[i].username + '</a></li>';
        }
        return list;
%>

Файл CSS загружается и применяется без проблем.Может кто-нибудь сказать мне, почему это, пожалуйста?Извиняюсь за вопрос новичка, но я пытался выяснить это целую вечность.

Я должен упомянуть, что теги 'h1' также игнорируются.Единственное, что отображается, это элементы списка.

Не уверен, что это актуально, но мое приложение подключается к MongoDB для возврата пользовательских данных.

Любая помощь будет принята с благодарностью!Спасибо!

1 Ответ

0 голосов
/ 25 февраля 2019

Убедитесь, что ваш файл CSS либо определен как конечная точка в вашем файле index.js, либо убедитесь, что существует public/stylesheets/style.css, чтобы его можно было загрузить с помощью команды app.use(express.static(path.join(__dirname, 'public')));.

...