搜索

📄 文章 📚 合集
热门搜索
🐘 PHP ⚡ Laravel 🎨 Vue.js ⚛️ React 📦 Yii 📘 JavaScript 🗄️ MySQL 🐳 Docker
返回合集

[板块5:静态页面生成器] - 09 - 创建前台布局模板

代码示例
# 创建前台布局模板

## 1。目标

创建前台页面的基础布局模板,提供统一的 HTML 框架、SEO 元数据和基础样式。

## 2。修改文件清单

| 文件 | 操作 | 说明 |
|------|------|------|
| `resources/views/frontend/layouts/app.blade.php` | 新建 | 前台布局模板 |

---

## 3。修改详情

### 3.1 创建目录

**执行命令**:

```bash
mkdir resources\views\frontend
mkdir resources\views\frontend\layouts
```

### 3.2 创建布局文件

**文件路径**:`resources\views\frontend\layouts\app.blade.php`

**完整代码**:

```blade
<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>{{ $title }} - {{ $siteName }}</title>
    <meta name="keywords" content="{{ $siteKeywords }}">
    <meta name="description" content="{{ $siteDescription }}">
    <style>
        * { margin: 0; padding: 0; box-sizing: border-box; }
        body { font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif; }
        
        /* 横幅样式 */
        .banner {
            background-size: cover;
            background-position: center;
            min-height: 400px;
            display: flex;
            align-items: center;
            text-align: center;
            color: #fff;
            background-color: #1a1a2e;
        }
        .banner-content { max-width: 800px; margin: 0 auto; padding: 0 20px; }
        .banner h1 { font-size: 48px; margin-bottom: 20px; }
        .banner p { font-size: 20px; margin-bottom: 30px; }
        .banner-btn {
            display: inline-block;
            padding: 12px 30px;
            background: #1890ff;
            color: #fff;
            text-decoration: none;
            border-radius: 6px;
            transition: all 0.3s;
        }
        .banner-btn:hover { background: #0c6bcf; }
        
        /* 文本块样式 */
        .text-block { padding: 60px 0; text-align: center; max-width: 800px; margin: 0 auto; }
        .text-block h2 { font-size: 32px; margin-bottom: 20px; color: #333; }
        .text-block p { font-size: 16px; line-height: 1.8; color: #666; }
        
        /* 图片块样式 */
        .image-block { text-align: center; padding: 40px 0; }
        .image-block img { max-width: 100%; border-radius: 8px; }
        
        /* 响应式 */
        @media (max-width: 768px) {
            .banner h1 { font-size: 32px; }
            .banner p { font-size: 16px; }
            .text-block { padding: 40px 20px; }
            .text-block h2 { font-size: 24px; }
        }
    </style>
</head>
<body>
    {!! $content !!}
</body>
</html>
```

**修改原因**:

| 代码 | 作用 | 原因 |
|------|------|------|
| `{{ $title }} - {{ $siteName }}` | 页面标题 | SEO 优化,显示当前页面标题和网站名称 |
| `{{ $siteKeywords }}` | SEO 关键词 | 从站点配置读取,提升搜索引擎排名 |
| `{{ $siteDescription }}` | SEO 描述 | 从站点配置读取,影响搜索结果显示 |
| `.banner` 样式 | 横幅组件样式 | 背景图、居中显示、自适应高度 |
| `.text-block` 样式 | 文本块样式 | 居中、最大宽度 800px、行高 1.8 |
| `.image-block` 样式 | 图片块样式 | 居中、圆角、响应式宽度 |
| `@media` 查询 | 响应式布局 | 移动端字体和间距适配 |
| `{!! $content !!}` | 组件内容插槽 | 渲染页面组件生成的 HTML |

---

## 4。验证结果

**访问测试**:浏览器打开 `http://engine-api.test/`

| 验证项 | 预期结果 | 实际结果 |
|--------|---------|---------|
| 页面访问 | 正常显示 | ✅ |
| HTML 结构 | 包含 DOCTYPE、head、body | ✅ |
| SEO 元数据 | title、keywords、description 存在 | ✅ |
| 样式加载 | 基础样式生效 | ✅ |

🧸 adorable code

专注 PHP、JavaScript、Laravel、Vue.js、React、Yii 全栈开发。记录技术探索过程中的灵感与经验,分享工程实践洞见。

hello@adorablecode.com