【问题标题】:How can I link to a .ejs-page from a .html-page? [duplicate]如何从 .html 页面链接到 .ejs 页面? [复制]
【发布时间】:2017-10-26 20:14:28
【问题描述】:

我正在制作一个网页,我一直在查看 stackoverflow,了解如何从 .html 文件链接到 .ejs 文件。

人们这样说

在 index.html 中:

<li><a href="views/twitter">Twitter</a></li>

在 script.js 中:

app.get('/twitter',function(req,res){
 res.render('twitter', { });
});

但这对我不起作用。它说“找不到您的文件”

但是,当我把 .ejs 放在后面时,像这样:

<li><a href="views/twitter.ejs">Twitter</a></li>

我可以访问该页面,但没有 css。我知道我需要创建一个控制器,这样我也可以看到 css,但是如何?如何链接它以便我可以正确查看它?它适用于本地主机,但不是当我第一次单击 index.html 然后从那里单击 twitter.ejs 时。我找不到任何涉及此问题的教程。

【问题讨论】:

  • 您是否在您的主要app.js 文件中使用了app.set('view engine', 'ejs') 或您正在运行的东西
  • @Jana 是的,我已经在我的 .js 文件中这样做了
  • 然后app.use('/views', express.static('public')) 静态文件路径?像这样的
  • 如果没有设置静态文件路径,则使用res.render(__dirname+'/views/twitter', { });
  • @Jana 感谢您的回复。我应该在哪里粘贴“res.render”代码?这是我使用“use”和“get”的部分代码:imgur.com/a/ml0C4 像这样,如果我将 .ejs 放在后面而没有原始帖子中提到的 css,我可以看到页面。

标签: javascript html css node.js express


【解决方案1】:

首先将你的视图引擎设置为ejs。

app.set('view engine', 'ejs');

接下来,告诉 express 您的 ejs 文件位于“views”文件夹中。

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

为了提供您的静态文件,如 css、js、图像等。将这些文件放在一个文件夹中,例如:public。现在告诉 express 提供这些静态文件:

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

在 index.html 中:

<li><a href="/twitter">Twitter</a></li>

【讨论】:

  • 谢谢。我已经完全按照您在这里写的内容完成了,我到达“file:///twitter”,上面写着“找不到您的文件”......
  • 我的代码现在看起来像这样:jsfiddle.net/drvsa0va/1
  • 你能提供你的文件夹结构吗?
猜你喜欢
  • 2018-04-06
  • 2020-05-31
  • 2014-01-07
  • 1970-01-01
  • 2013-11-30
  • 2023-03-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多