Files
netbox/NetBox前端定制化指南.md
estel ef0cea1e91
Some checks failed
CI / build (20.x, 3.10) (push) Has been cancelled
CI / build (20.x, 3.11) (push) Has been cancelled
CI / build (20.x, 3.12) (push) Has been cancelled
CodeQL / Analyze (actions) (push) Has been cancelled
CodeQL / Analyze (javascript-typescript) (push) Has been cancelled
CodeQL / Analyze (python) (push) Has been cancelled
docs: 添加NetBox前端定制化指南并更新品牌信息
添加前端定制化指南文档,说明如何修改页面标题、LOGO等品牌元素
更新模板文件中的品牌名称和图标为"东南信科Lab"
2025-09-27 13:58:17 +08:00

228 lines
6.9 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# NetBox 前端定制化指南
本文档详细说明了如何自定义 NetBox 项目的前端元素包括网站标题、LOGO、品牌元素等。
## 1. 页面标题修改
### 1.1 基础模板标题
**文件位置**: `netbox/templates/base/base.html`
**修改行**: 第 23 行
```html
<!-- 原始代码 -->
<title>{% block title %}{% trans "Home" %}{% endblock %} | NetBox</title>
<!-- 修改为 -->
<title>{% block title %}{% trans "Home" %}{% endblock %} | 您的公司名称</title>
```
### 1.2 浏览器标签页图标 (Favicon)
**文件位置**: `netbox/templates/base/base.html`
**修改行**: 第 45 行
```html
<!-- 原始代码 -->
<link rel="icon" type="image/png" href="{% static 'netbox.ico' %}" />
<!-- 需要替换的文件 -->
```
**需要替换的文件**: `netbox/project-static/img/netbox.ico`
### 1.3 移动端图标
**文件位置**: `netbox/templates/base/base.html`
**修改行**: 第 46 行
```html
<!-- 原始代码 -->
<link rel="apple-touch-icon" type="image/png" href="{% static 'netbox_touch-icon-180.png' %}" />
```
**需要替换的文件**: `netbox/project-static/img/netbox_touch-icon-180.png`
## 2. LOGO 修改
### 2.1 主导航栏 LOGO
**文件位置**: `netbox/templates/base/layout.html`
**修改行**: 第 32-35 行
```html
<!-- 原始代码 -->
<h1 class="navbar-brand pb-0">
<a href="{% url 'home' %}">
<img src="{% static 'logo_netbox_dark_teal.svg' %}" alt="{% trans "NetBox Logo" %}" class="navbar-brand-image hide-theme-dark">
<img src="{% static 'logo_netbox_bright_teal.svg' %}" alt="{% trans "NetBox Logo" %}" class="navbar-brand-image hide-theme-light">
<div class="netbox-edition fw-semibold text-center fs-5 my-1">{{ settings.RELEASE.edition }}</div>
</a>
</h1>
<!-- 修改为 -->
<h1 class="navbar-brand pb-0">
<a href="{% url 'home' %}">
<img src="{% static 'your_logo_dark.svg' %}" alt="您的公司 Logo" class="navbar-brand-image hide-theme-dark">
<img src="{% static 'your_logo_light.svg' %}" alt="您的公司 Logo" class="navbar-brand-image hide-theme-light">
<div class="netbox-edition fw-semibold text-center fs-5 my-1">您的版本信息</div>
</a>
</h1>
```
**需要替换的文件**:
- `netbox/project-static/img/logo_netbox_dark_teal.svg` (深色主题下的 LOGO)
- `netbox/project-static/img/logo_netbox_bright_teal.svg` (浅色主题下的 LOGO)
### 2.2 商业版装饰图案 (可选)
**文件位置**: `netbox/templates/base/layout.html`
**修改行**: 第 22-24 行
```html
<!-- 原始代码 -->
{% if settings.RELEASE.features.commercial %}
<img class="motif" src="{% static 'motif.svg' %}" alt="{% trans "NetBox Motif" %}">
{% endif %}
```
**需要替换的文件**: `netbox/project-static/img/motif.svg`
## 3. 静态资源文件位置
### 3.1 图片资源目录
**主要目录**: `netbox/project-static/img/`
包含的文件:
- `logo_netbox_bright_teal.svg` - 浅色主题 LOGO
- `logo_netbox_dark_teal.svg` - 深色主题 LOGO
- `motif.svg` - 装饰图案
- `netbox.ico` - 网站图标
- `netbox_icon.svg` - NetBox 图标
- `netbox_touch-icon-180.png` - 移动端图标
- `plugin-default.svg` - 插件默认图标
- `rest-api.ico` - REST API 图标
### 3.2 编译后的静态资源
**目录**: `netbox/project-static/dist/`
- 包含编译后的 CSS、JS 和字体文件
- 修改源文件后需要重新编译
## 4. 样式定制
### 4.1 CSS 源文件
**主要文件**: `netbox/project-static/styles/netbox.scss`
**变量文件**: `netbox/project-static/styles/_variables.scss`
### 4.2 自定义样式
**目录**: `netbox/project-static/styles/custom/`
- 可以在此目录添加自定义样式文件
## 5. 配置文件修改
### 5.1 横幅配置
**文件位置**: `netbox/configuration.py` (需要创建)
可配置的横幅选项:
```python
# 登录页面横幅
BANNER_LOGIN = "欢迎使用您的网络管理系统"
# 维护模式横幅
BANNER_MAINTENANCE = "系统正在维护中,功能可能受限"
# 页面顶部横幅
BANNER_TOP = "您的公司内部网络管理系统"
# 页面底部横幅
BANNER_BOTTOM = "© 2024 您的公司名称"
```
### 5.2 REST API 文档标题
**文件位置**: `netbox/netbox/settings.py`
**修改行**: 第 733 行
```python
# 原始代码
'TITLE': 'NetBox REST API',
# 修改为
'TITLE': '您的公司 REST API',
```
## 6. 版本信息定制
### 6.1 版本显示
**文件位置**: `netbox/templates/base/layout.html`
**修改行**: 第 52-58 行
```html
<!-- 原始代码 -->
<div class="text-muted text-center fs-5 my-3">
{{ settings.RELEASE.name }}
{% if not settings.RELEASE.features.commercial and not settings.ISOLATED_DEPLOYMENT %}
<div>
<a href="https://netboxlabs.com/netbox-cloud/" class="text-muted">{% trans "Get" %} Cloud</a> |
<a href="https://netboxlabs.com/netbox-enterprise/" class="text-muted">{% trans "Get" %} Enterprise</a>
</div>
{% endif %}
</div>
<!-- 可以修改为 -->
<div class="text-muted text-center fs-5 my-3">
您的系统版本信息
<!-- 移除或修改商业链接 -->
</div>
```
## 7. 搜索框定制
### 7.1 搜索占位符
**文件位置**: `netbox/templates/base/layout.html`
**修改行**: 第 75 行
```html
<!-- 原始代码 -->
<input type="text" name="q" value="" class="form-control" placeholder="Search…" aria-label="Search NetBox">
<!-- 修改为 -->
<input type="text" name="q" value="" class="form-control" placeholder="搜索..." aria-label="搜索您的系统">
```
## 8. 实施步骤
### 8.1 准备工作
1. 备份原始文件
2. 准备您的 LOGO 文件 (建议使用 SVG 格式)
3. 准备网站图标文件
### 8.2 文件替换
1. 将您的 LOGO 文件复制到 `netbox/project-static/img/` 目录
2. 修改模板文件中的引用路径
3. 更新配置文件
### 8.3 重新编译 (如果修改了样式)
```bash
cd netbox/project-static
npm install # 如果是首次编译
npm run build
```
### 8.4 重启服务
```bash
# 重启 NetBox 服务以应用更改
sudo systemctl restart netbox
```
## 9. 注意事项
1. **备份**: 修改前请备份原始文件
2. **版本升级**: NetBox 升级时可能会覆盖自定义内容,需要重新应用修改
3. **图片格式**: 建议使用 SVG 格式的 LOGO支持响应式和主题切换
4. **缓存**: 修改后可能需要清除浏览器缓存才能看到效果
5. **权限**: 确保 Web 服务器对静态文件有读取权限
## 10. 文件清单
需要修改或替换的主要文件:
### 模板文件
- `netbox/templates/base/base.html` - 页面标题和图标
- `netbox/templates/base/layout.html` - LOGO 和布局
### 静态资源文件
- `netbox/project-static/img/logo_netbox_dark_teal.svg`
- `netbox/project-static/img/logo_netbox_bright_teal.svg`
- `netbox/project-static/img/netbox.ico`
- `netbox/project-static/img/netbox_touch-icon-180.png`
- `netbox/project-static/img/motif.svg` (可选)
### 配置文件
- `netbox/configuration.py` - 横幅和基本配置
- `netbox/netbox/settings.py` - API 文档标题
通过以上修改,您可以将 NetBox 完全定制为您自己的品牌形象。