开发者社区 问答 正文

菜单导航写死在静态页面上,链接要怎么做?:报错

     公司里的网站优化要求菜单的导航写死在静态页面里面,而不是从数据库里判断,没有取值,也没有了判断值。。。。。。导航里面的内容就有几十条,还要有链接。。。。高手们,求解答,这链接要怎么写啊????难道要一个页面一个页面的写么????我实在是不会了。。。。。

展开
收起
kun坤 2020-06-14 08:36:04 430 分享 版权
阿里云 AI 助理回答

面对您的需求,实际上可以通过模板引擎的方式来实现静态页面中导航菜单的生成,而无需为每个页面单独编写导航链接。这样可以大大减少工作量并提高维护效率。以下是一个基本思路和示例:

使用模板引擎

  1. 选择模板引擎:首先,您可以选择一个适合您项目的模板引擎。在PHP中常用的是Twig、Smarty等;在JavaScript领域有EJS、Pug(Jade)、Handlebars等。这些模板引擎允许你定义一个基础模板,在其中插入动态内容。

  2. 定义导航数据结构:将导航菜单的数据结构化,例如放在一个JSON文件或直接在代码中定义。

// 导航数据示例 (nav_data.json)
[
    { "title": "首页", "url": "/" },
    { "title": "关于我们", "url": "/about" },
    { "title": "产品中心", "url": "/products" },
    // ... 其他导航项
]
  1. 创建基础模板:在模板中定义一个区域来渲染导航菜单,并使用循环遍历数据生成链接。

示例 - 使用EJS模板引擎(假设您使用的是Node.js环境)

安装EJS:

npm install ejs

基础模板layout.ejs:

<!DOCTYPE html>
<html>
<head>
    <title><%= title %></title>
</head>
<body>
    <header>
        <nav>
            <ul id="menu">
                <% for(let item of navItems) { %>
                    <li><a href="<%= item.url %>"><%= item.title %></a></li>
                <% } %>
            </ul>
        </nav>
    </header>
    <main>
        <!-- 页面主要内容 -->
        <%= body %>
    </main>
</body>
</html>

在Node.js应用中使用EJS渲染页面:

const express = require('express');
const ejs = require('ejs');
const fs = require('fs');

const app = express();
app.set('view engine', 'ejs');

// 读取导航数据
const navData = JSON.parse(fs.readFileSync('nav_data.json', 'utf-8'));

app.get('/', function(req, res) {
    // 渲染主页时传递导航数据
    res.render('index', { 
        title: '首页', 
        navItems: navData,
        body: '<h1>欢迎来到首页</h1>' 
    });
});

// 其他路由类似处理...

app.listen(3000);

通过这种方式,您只需维护一个导航数据源和基础模板,即可自动生成所有页面的导航菜单,无需为每个页面手动编写导航链接。

有帮助
无帮助
AI 助理回答生成答案可能存在不准确,仅供参考
0 条回答
写回答
取消 提交回答
问答地址: