【问题标题】:Can I link to a .ejs-page from a .html-page?我可以从 .html 页面链接到 .ejs 页面吗?
【发布时间】:2018-04-06 23:07:16
【问题描述】:

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

人们这样说

在 index.html 中:

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

在 script.js 中:

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

但这对我不起作用。它说“找不到您的文件”。它适用于本地主机,但不是当我第一次单击 index.html 然后从那里单击 twitter.ejs 页面时。我的代码如下所示:jsfiddle

twitter.ejs 位于视图文件夹中,而 index 位于此文件夹之外。

怎么了?

【问题讨论】:

  • 您不直接链接到视图模板。这些会在您的模型中返回。因此,执行此操作的适当方法是链接到您的 twitter 模型中返回的内容。
  • @kawnah 感谢您的回复,但我不确定您所说的模型是什么意思?您的意思是将 .html 文件作为查看模板吗?
  • 哦等等 - 你想直接将它插入 HTML 吗?或者有这个链接到一个单独的页面?
  • @kawnah 我有一个 index.html,我想在其中链接到 twitter.ejs。 twitter.ejs 有自己的 css 文件,当我将“views/twitter.ejs”放入 index.html 时,它不起作用,但如果没有 .ejs 扩展名,它根本不起作用。

标签: html css node.js ejs


【解决方案1】:

例如,如果您的 .ejs 文件名为“contact.ejs”,那么您定位的路由可能类似于“/contact”。

  1. 首先在您的服务器代码中设置联系路由:

//设置联系路由 app.get("/contact", function (req, res) {

res.render("联系人", {}); });

  1. 将相应锚标记中的 href 更新为: href="/联系人"

我在这个例子中使用 expressJS 和 EJS。所以必须先设置这些。

【讨论】:

    【解决方案2】:

    情况是您试图直接链接到视图模板。

    您需要创建一个到 twitter 控制器的路由,然后调用您的模板。它看起来像这样:

    router.get('/twitter', twitterController.twitter_view);

    【讨论】:

    • 嗯..你有这方面的教程吗?我有const app = express();,然后是app.get('/twitter',function(req,res){res.render('twitter', {});});。我试图将其更改为您编写的内容,但未定义 twitterController。我应该如何定义它?似乎在这个确切的主题上找不到任何东西。再次感谢您的回复。
    • 我现在明白你说的路由是什么意思了,但是还是不行。我的代码现在看起来像这样:jsfiddle.net/drvsa0va/1
    猜你喜欢
    • 1970-01-01
    • 2014-08-21
    • 1970-01-01
    • 1970-01-01
    • 2020-05-31
    • 2011-05-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多