
本教程详细阐述了如何在netlify上为网站设置子域名(如work.yourdomain.com)。核心在于理解子域名与文件结构的关系,并选择合适的netlify部署策略。文章将指导您如何组织项目文件,并通过独立站点或monorepo功能配置netlify与dns记录,确保子域名网站的正确部署与运行。
引言
在现代Web开发中,为网站的不同功能或作品集设置子域名(例如work.yourdomain.com)是一种常见的需求。这有助于保持主站点的整洁,并为特定内容提供独立的访问入口。对于使用Netlify进行托管的用户而言,正确地组织项目文件并配置Netlify是实现这一目标的关键。本教程将深入探讨如何在Netlify环境下,将您的子域名内容(如一个名为“work”的项目)与主域名分离并成功部署。
核心概念:子域名与文件结构
首先,我们需要明确“子域名”(subdomain.yourdomain.com)与“子路径”(yourdomain.com/subpath)的区别。子域名通常被视为一个独立的网站或应用程序,拥有自己的内容和潜在的独立配置。而子路径则是主网站下的一个目录。本教程主要关注如何为work.yourdomain.com这样的独立子域名进行设置。
要为子域名部署内容,即使您的所有代码都存储在同一个本地Git仓库中,也强烈建议将子域名的内容组织在一个独立的文件夹中。例如,如果您想将作品集部署到work.yourdomain.com,那么在您的主项目仓库的根目录下创建一个名为work的文件夹,并将所有作品集相关的代码放入其中,是一个良好的开端。
your-main-project-repo/ ├── .git/ ├── public/ # 主网站的构建输出 ├── src/ # 主网站的源代码 ├── work/ # 子域名项目的根目录 │ ├── public/ # 子域名项目的构建输出 │ ├── src/ # 子域名项目的源代码 │ ├── package.json │ └── netlify.toml # 可选:子域名项目的Netlify配置 ├── package.json # 主网站的package.json └── netlify.toml # 可选:主网站的Netlify配置
这种文件组织方式为后续的Netlify部署提供了灵活性。
Netlify子域名部署策略
在Netlify上部署子域名主要有两种策略,具体取决于您的项目结构和管理偏好。
策略一:为每个子域名创建独立的Netlify站点(推荐)
这是最常见且推荐的方法,尤其适用于子域名项目与主项目相对独立的情况。每个子域名都对应一个独立的Netlify站点,拥有自己的构建、部署和域名配置。
优势:
- 独立性强: 各站点之间互不影响,故障隔离。
- 配置灵活: 每个站点可以有独立的构建命令、环境变量和插件。
- 资源管理: 易于追踪和管理每个站点的资源使用情况。
文件组织: 尽管您的子域名项目代码可能最初在主仓库的一个子文件夹中(如work/),但为了将其部署为独立的Netlify站点,您通常会将其视为一个独立的Git仓库。这意味着您可以将work/文件夹初始化为一个新的Git仓库,并推送到GitHub、GitLab或Bitbucket。
Netlify配置步骤:
准备项目: 确保您的子域名项目(例如work)已准备好部署。它应该拥有自己的package.json(如果适用)、构建脚本和所有必需的文件。将其上传到一个独立的Git仓库。
-
创建Netlify站点:
- 登录Netlify。
- 点击“Add new site”(添加新站点)。
- 选择“Import an existing project”(导入现有项目)。
- 连接您的Git提供商,并选择包含您子域名项目代码的独立Git仓库。
- 配置构建设置(例如,Build command和Publish directory)。
- 点击“Deploy site”(部署站点)。Netlify将为您生成一个临时的your-work-site-name.netlify.app域名。
-
域名配置:
- 在Netlify中,进入您新创建的子域名站点的“Site settings”(站点设置)。
- 导航到“Domain management”(域名管理)-> “Custom domains”(自定义域名)。
- 点击“Add a custom domain”(添加自定义域名),输入您的子域名,例如work.yourdomain.com。
- Netlify将引导您完成DNS配置。通常,您需要在您的域名注册商(例如Hover)处添加一个CNAME记录。
示例DNS记录(以Hover为例):
- 类型 (Type): CNAME
- 主机 (Host): work (这是您的子域名部分)
- 值 (Value): your-work-site-name.netlify.app (这是Netlify为您子域名站点生成的临时域名)
保存DNS记录后,等待DNS传播完成(可能需要几分钟到几小时)。Netlify会自动为您子域名站点颁发和管理SSL证书。
策略二:使用Netlify Monorepo功能(适用于复杂项目)
如果您的主网站和子域名项目都位于同一个Git仓库中(即Monorepo),并且您希望从这个单一仓库部署多个独立的Netlify站点,那么可以使用Netlify的Monorepo功能。
优势:
- 集中管理: 所有相关项目代码都在一个仓库中,方便版本控制。
- 代码共享: 可以在不同项目之间共享代码或组件。
文件组织: 您的主Git仓库中包含多个项目文件夹,例如:
your-main-monorepo/ ├── .git/ ├── main-site/ # 主网站项目 │ ├── public/ │ ├── src/ │ └── package.json ├── work/ # 子域名项目 │ ├── public/ │ ├── src/ │ └── package.json ├── shared-components/ # 共享组件 └── package.json # 仓库根目录的package.json (可选)
Netlify配置要点:
- 项目准备: 确保您的主Git仓库结构清晰,每个子项目(包括主网站和子域名项目)都有独立的构建配置。
- 创建Netlify站点(针对子域名): 即使是Monorepo,您仍然需要为work.yourdomain.com创建一个独立的Netlify站点。
- 链接Git仓库: 在Netlify中创建新站点时,链接到同一个主Git仓库。
-
配置构建设置: 这是关键一步。
- 在Netlify站点的“Site settings”(站点设置)-> “Build & deploy”(构建与部署)-> “Build settings”(构建设置)中,找到Base directory(基础目录)选项。
- 将其设置为您的子域名项目所在的文件夹路径,例如work/。
- Netlify将仅从这个Base directory中构建和部署您的站点。
- 根据需要配置Build command和Publish directory。
- 域名配置: 域名配置步骤与策略一完全相同。您需要在Netlify中为该站点添加work.yourdomain.com,并在域名注册商处添加相应的CNAME记录。
注意事项
- DNS传播时间: 配置DNS记录后,全球的DNS服务器更新需要时间,通常为几分钟到几小时。在此期间,您的子域名可能无法立即访问。
- SSL证书: Netlify会自动为所有通过其平台配置的自定义域名(包括子域名)颁发和管理免费的SSL证书。您无需手动操作。
- 相对路径: 确保您的子域名项目中的所有内部链接、图片路径和资源引用都使用相对路径,以避免在部署后出现问题。
- 域名注册商: 务必在您的域名注册商(例如Hover)的DNS管理界面中进行正确的CNAME记录配置。
- netlify.toml文件: 如果您的子域名项目需要特定的重定向、Headers或环境变量,您可以在其根目录(例如work/)下放置一个独立的netlify.toml文件。
总结
为Netlify网站设置子域名,关键在于理解其独立性,并选择合适的部署策略。无论是通过创建独立的Netlify站点(推荐)还是利用Monorepo功能,核心思想都是将子域名的内容视为一个独立的部署单元。通过正确组织项目文件,并在Netlify和您的域名注册商处进行精确的配置,您将能够成功地将您的子域名网站上线,为用户提供清晰、独立的内容访问体验。










