发布于 2026-01-06 9 阅读
0

在 Hostinger 上部署您的 NextJS 项目 DEV 的全球展示挑战赛,由 Mux 呈现:展示您的项目!

在 Hostinger 上部署您的 NextJS 项目

由 Mux 主办的 DEV 全球展示挑战赛:展示你的项目!

有时,您可能需要在预算有限的情况下部署前端应用程序或概念验证 (POC),例如营销页面。在这种情况下,使用个人主机可能是一个切实可行的解决方案。本文将介绍如何自动将前端部署到 Hostinger 子域名或子页面。

操作步骤:

后续步骤

要求

  • Hostinger主机服务
  • Git
  • GitLab/GitHub 或其他能够创建流水线和添加密钥的工具

一个简单的应用程序(可选)

你可以创建一个新的前端应用程序进行测试,也可以使用现有的应用程序。本文中,我们将构建一个 NextJS 应用程序。



npx create-next-app@latest


Enter fullscreen mode Exit fullscreen mode

这是我们的默认应用程序:

NextJS 默认应用程序

配置“next.config.mjs”

要将静态文件输出到文件夹,请修改“next.config.mjs”文件,添加以下内容outputbasePath,,和assetPrefix



/** @type {import('next').NextConfig} */
const nextConfig = {
  output: "export",
  basePath: process.env.BASE_PATH ? process.env.BASE_PATH : "",
  assetPrefix: process.env.URL ? process.env.URL : undefined,
};

export default nextConfig;


Enter fullscreen mode Exit fullscreen mode

配置完成后,执行该操作npx next build将正确创建包含所有链接和 CSS 文件的“out”目录。

输出目录图像

对于由管理的图像next/image,请根据需要更新图像路径。

Git diff 图像组件

Hostinger步骤

在您的 Hostinger 帐户中创建子域名或特定文件夹。

Hostinger上的子域名

考虑设置一个仅限于该目录的新 FTP 帐户,以遵守最小权限原则 (POLP)。

FTP 用户配置

GitLab 步骤

虽然还有其他部署方案可用,但本教程重点介绍如何使用 GitLab。首先,请确保您的项目已部署在 GitLab 上,并在 CI/CD 设置中添加您的 Hostinger FTP 客户端密钥:

https://gitlab.com/[GROUP_OR_NAMESPACE]/[PROJECT]/-/settings/ci_cd

GitLab 变量

  • [project]_base_path替换链接的 base_path,但我们需要在图片中手动更新。
  • [project]_ftp_host例如 ftp.1234.com
  • [project]_ftp_password
  • [project]_ftp_user
  • [project]_url这是您的资源 URL(https://…),可以是您自己的网站地址或 CDN 地址。

将环境定义为prd,但您可以根据需要创建各种环境变量。

请将以下内容替换[project]为您的项目名称:



image: node:21.4.0-alpine

cache:
  paths:
    - node_modules/

before_script:
  - apk add lftp
  - npm install

upload:
  environment: prd
  stage: deploy
  script:
    - echo "Preparing FTP... $[project]_ftp_host $[project]_ftp_user $[project]_ftp_password"
    - URL=$[project]_url BASE_PATH=$[project]_base_path npx next build
    - lftp -c "set verify-certificate/$[project]_ftp_host no; set ftp:ssl-allow on; open -u $[project]_ftp_user,$[project]_ftp_password ftp://$[project]_ftp_host; mirror -Rev out/ ./ --ignore-time --parallel=10"

  only:
    - master
    - main


Enter fullscreen mode Exit fullscreen mode

更多关于阿尔卑斯山图像的信息

结论

如果配置正确,主分支的每次更新都会运行一个新作业,并在每个作业日志中显示进度。

职位列表

作业日志

已发布页面

我相信这些信息对您很有帮助。感谢您抽出时间阅读本文。:D

谢谢图片

LinkedIn:https://www.linkedin.com/in/andersonbmagalhaes/

其他可能性

  • 将您的公共文件分离到内容分发网络 (CDN) 中。
  • 创建多个环境(例如,开发环境、测试环境、生产环境)。
  • 使用 GitHub Actions 实现替代的 CI/CD 方法

好处

  • 高效地将变更交付给生产部门。
  • 能够在部署前对流水线中的代码进行测试。
  • 低成本解决方案,适用于市场推广活动或概念验证等公共项目。

广告

对于需要严格遵守或控制部署工具(Hostinger、Gitlab/Github、密钥/环境变量)的项目,不建议采用这种方法。

参考

原文

NextJS - 基本路径

NextJS - 静态导出

Cyber​​Ark - POLP

GitLab - 变量

文章来源:https://dev.to/oandersonmagalhaes/deploying-your-nextjs-project-on-hostinger-4gpm