Файл Ejs не обрабатывается при изменении URL тега привязки, href - PullRequest
0 голосов
/ 17 ноября 2018
<a class="active" href="/dashboard">
   <i class="fa fa-dashboard">
  </i><span>Dashboard</span>
  </a>

router.get('/dashboard',function(req,res,next){
   res.render('dashboard');
});

С этой частью выше, файл "dashboard.ejs" отображается должным образом, но когда я изменяю его, как показано ниже, файл "dashboard.ejs" не отображается!

 <a class="active" href="/dashboard/dashboardcontent">
   <i class="fa fa-dashboard">
  </i><span>Dashboard</span>
  </a>

router.get('/dashboard/dashboardcontent',function(req,res,next){
   res.render('dashboard');
});

и мне интересно, почему он не отображает файл при таких небольших изменениях.

Любая помощь?

1 Ответ

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

Прежде чем найти решение:

app.use(express.static(path.join(__dirname, 'public')));

Как мы видим, у меня не было префикса виртуального пути, созданного для файлов, которые обслуживаются функцией express.static!

Решение:

Чтобы создать префикс виртуального пути (где путь фактически не существует в файловой системе) для файлов, которые обслуживаются функцией express.static, укажите путь монтирования для статического каталога, как показано ниже:

app.use('/static', express.static(path.join(__dirname, 'public')));

Я также добавил это / static для всех ссылок CSS, JS, Images в файле layout.ejs, как показано ниже:

<!-- Bootstrap core CSS -->
<link href="/static/stylesheets/bootstrap.css" rel="stylesheet">
<!--external css-->
<link href="/static/font-awesome/css/font-awesome.css" rel="stylesheet" />
<link rel="stylesheet" type="text/css" href="/static/stylesheets/zabuto_calendar.css">
<link rel="stylesheet" type="text/css" href="/static/javascripts/gritter/css/jquery.gritter.css" />
<link rel="stylesheet" type="text/css" href="/static/lineicons/style.css">    

<!-- Custom styles for this template -->
<link href="/static/stylesheets/style.css" rel="stylesheet">
<link href="/static/stylesheets/style-responsive.css" rel="stylesheet">
<script src="/static/lib/jquery.min.js" type="text/javascript"></script>
<script src="/static/dist/jquery.validate.min.js" type="text/javascript"></script>
<script src="/static/javascripts/chart-master/Chart.js"></script>
<script src="/static/select2Plugin/select2.min.js"></script>
<link rel="stylesheet" href="/static/select2Plugin/select2.min.css" />

Источник: https://expressjs.com/en/starter/static-files.html

       Hope this will be found helpful.
...