很多前端同学平时只接触 npm run dev
的开发模式。但在一些场景下,我们需要用 nginx 来本地模拟部署环境,比如:
- 验证 打包后的静态资源能否正常运行。
- 处理 单页面应用(spa)路由刷新 404 问题。
- 本地做 缓存策略测试(比如静态资源 30 天缓存)。
- 和后端或移动端联调时,模拟 接近生产的访问方式。
下面我们来一步步看怎么在本地用 nginx 来托管前端项目。
项目目录结构
.
├── logs # 存放 nginx 访问日志和错误日志
│ ├── access.log
│ └── error.log
├── nginx.conf # nginx 配置文件
├── nginx.sh # nginx 启动/停止/重载脚本
├── package.json # npm 脚本配置
└── utils.sh # (可选)工具脚本
这样整理后,前端项目和本地 nginx 部署逻辑绑定在一起,不需要频繁写长命令。
核心配置文件:nginx.conf
worker_processes 1; # 启动的 worker 数量 events { worker_connections 1024; # 每个 worker 最大连接数 } http { include /opt/homebrew/etc/nginx/mime.types; # 识别常见文件类型 default_type application/octet-stream; sendfile on; # 高效传输文件 keepalive_timeout 65; # 长连接超时时间 # 日志文件路径 access_log /users/luoluqi/desktop/ngnix-server/logs/access.log; error_log /users/luoluqi/desktop/ngnix-server/logs/error.log warn; server { listen 8080; # 监听端口 server_name localhost; # 本地访问域名 root /users/luoluqi/desktop/blockify-ui/docs-dist; # 前端打包目录 index index.html; # 单页面应用路由处理 location / { try_files $uri $uri/ /index.html; } # 静态资源缓存 location ~* .(js|css|png|jpg|jpeg|gif|svg|ico|woff2?|ttf|eot)$ { expires 30d; add_header cache-control "public"; } # 禁止访问隐藏文件 location ~ /. { deny all; } } }
配置要点:
- root:指定前端打包产物目录。
- try_files:保证 spa 项目在刷新时不会 404,而是回退到
index.html
。 - 静态资源缓存:让 js/css 等资源缓存 30 天,更接近生产环境。
- 隐藏文件保护:禁止访问
.git
、.env
等敏感文件。
脚本化操作:nginx.sh
#!/bin/bash base_dir=$(cd "$(dirname "$0")"; pwd) nginx_conf="$base_dir/nginx.conf" case "$1" in start) echo "starting nginx..." nginx -c "$nginx_conf" ;; reload) echo "reloading nginx configuration..." nginx -s reload ;; stop) echo "stopping nginx..." nginx -s stop ;; *) echo "usage: ./nginx.sh {start|reload|stop}" exit 1 ;; esac
这样就不用每次手动敲 nginx -c
或 nginx -s reload
,直接 ./nginx.sh start
即可。
npm 脚本集成
在 package.json
里增加:
"scripts": { "nginx:start": "./nginx.sh start", "nginx:reload": "./nginx.sh reload", "nginx:stop": "./nginx.sh stop" }
这样就可以用熟悉的 npm 命令来操作:
npm run nginx:start npm run nginx:reload npm run nginx:stop
总结:对前端的意义
- 快速验证打包产物:不用每次都等后端部署。
- 模拟生产环境:测试缓存策略、路由、错误日志。
- 更专业的本地调试:和移动端、后端联调时避免跨域或开发环境差异。
- 一键化操作:脚本化 + npm 集成,让前端工程师也能轻松用上 nginx。
建议:在团队中可以把这套配置放到前端仓库里(例如 nginx/
文件夹),大家拉代码后就能直接启动,减少环境差异。
到此这篇关于nginx搭建前端本地预览环境的完整步骤教学的文章就介绍到这了,更多相关nginx搭建前端本地预览环境内容请搜索代码网以前的文章或继续浏览下面的相关文章希望大家以后多多支持代码网!
发表评论