【问题标题】:node/express anchor links not directing to the other HTML static pagenode/express 锚链接不指向其他 HTML 静态页面
【发布时间】:2020-06-02 13:51:16
【问题描述】:

我正在构建我的第一个 node.js/express.js 项目。这就是我的directory structure 的样子。

在我的index.htmlfavorites.html 文件中,我包含了用于在两个页面之间导航的锚标记:

<header class="menu">
  <a href="index.html"><i class="fas fa-home"></i></a>
  <a href="favorites.html" class="favorite"><i class="fas fa-heart"></i></a>
</header>

当我通过节点 (localhost:3000) 运行服务器时,index.html 上的导航链接似乎不起作用,没有任何反应。但是,当我转到 localhost:3000/favorites.html 时,导航链接会起作用并将我重定向回 index.htmlfavorites.html 本身。

server.js 文件中,我添加了 express.static 中间件,以在 express 文档之后以及在此处阅读不同答案后为 public 文件夹中的所有静态文件提供服务。

const express = require('express');
const app = express();

app.use(express.static('public'));

谁能指出为什么 index.html 上的链接可能不起作用的正确方向?谢谢!

【问题讨论】:

  • 如果单击链接没有任何作用,但直接转到 URL 却没有,那么问题与 Express 无关,而与您的客户端代码有关。在其他条件相同的情况下,问题是没有可点击的内容(可能您有一些 CSS 可以尝试提供一些背景图片来点击,但您并没有在问题中展示问题(提供 minimal reproducible example! ) 并且该方法存在主要的可访问性问题。如果您希望点击图片,请使用带有alt 属性的&lt;img&gt;

标签: html node.js express


【解决方案1】:

请使用如下路线:

const express = require('express');
const app = express();

app.use(express.static('public'));

app.get('/', function (request, response) {
    response.sendFile(__dirname + './public/index.html');
});

app.get("/favorites", function (request, response) {
    response.sendFile(__dirname + './public/favorites.html');
});
<header class="menu">
  <a href="/"><i class="fas fa-home"></i></a>
  <a href="/favorites" class="favorite"><i class="fas fa-heart"></i></a>
</header>

【讨论】:

  • static 模块有什么问题?为什么他们必须为每个静态页面创建一个显式路由?
  • 你能分享你的完整 index.html 文件吗?
  • 我之前也尝试过这个解决方案,但没有成功,但刚刚添加了明确的路线再试一次,并且 index.html 上的导航链接似乎仍然没有将我重定向到 favorites.html。也回复@Quentin,感谢您的建议。我换掉了 HTML 图标以使用带有 alt 的图像,还注释掉了 css 文件,以查看这是否是链接到我的 CSS 文件的问题,但奇怪的是锚标签似乎仍然不起作用
猜你喜欢
  • 2012-08-29
  • 1970-01-01
  • 2010-11-27
  • 1970-01-01
  • 2018-01-21
  • 2017-03-29
  • 2013-09-08
  • 1970-01-01
  • 2022-01-05
相关资源
最近更新 更多