Java项目网站≠Spring Boot启动页,应将网站视为前端单页应用,后端仅提供元数据API,静态资源放src/main/resources/static/,数据与视图分离,避免硬编码,注意Nginx MIME类型配置。

Java项目网站 ≠ Spring Boot 启动页
很多人用 spring-boot-starter-web 跑通一个 /hello 接口,就以为“Java项目网站”做完了。其实不是——展示型网站的核心是「静态内容可维护、项目信息能自动同步、部署不依赖后端渲染逻辑」。Spring Boot 默认的 Thymeleaf 或 JSP 模板方案,在这类场景里反而增加复杂度和维护成本。
用 Spring Boot 静态资源目录 + 前端构建流程最稳妥
把网站当成「前端单页应用」来组织,后端只提供项目元数据接口(比如 JSON 列表),其余全由 HTML/CSS/JS 渲染。这样既能用 Java 管理项目数据源(如读取 projects.yaml 或查数据库),又避免模板引擎带来的路径、缓存、SEO 问题。
-
src/main/resources/static/放index.html、projects.js、style.css - 前端用
fetch('/api/projects')拉取 JSON,用 JS 动态生成卡片列表 - 后端写一个
@RestController返回List,Spring Boot 自动序列化为 JSON - 不用配置
WebMvcConfigurer,默认静态资源路径已支持/映射到index.html
项目数据别硬编码在 HTML 里
展示型网站最常被忽略的一点:项目信息变一次,就得改 HTML、提 PR、重新部署。应该让数据和视图分离。推荐两种轻量方式:
- 用
src/main/resources/projects.json,启动时由@PostConstruct加载进内存,API 直接返回它——适合小规模、更新不频繁的站点 - 用
@Value("classpath:projects.yaml")配合YamlPropertiesFactoryBean,比 JSON 更易人工编辑(注意缩进和冒号空格) - 如果项目信息来自 Git 仓库(如 GitHub repos API),建议加一层缓存(
@Cacheable),避免首页打开慢或触发限流
部署时别漏掉静态资源 MIME 类型配置
本地跑得好,上线 404 或 CSS 不生效?大概率是反向代理(Nginx / Cloudflare)没正确设置 .js、.css 的 Content-Type。Spring Boot 内置 Tomcat 默认能识别常见类型,但一旦前面加了 Nginx,且没配 include mime.types;,就会返回 text/plain,浏览器直接拒解析。
系统特点: 商品多级分类检索、搜索,支持同一商品多重分类,自由设置显示式样 自由设置会员类型,自由设置权限项目,自由分配每种会员类型和每个会员的权限 灵活的商品定价,最多12级价格自由分配给各种会员类型或会员,也可针对单会员单商品特殊定价 强大的会员管理、帐户管理、订单管理功能和一系列帐务查询统计功能 灵活的会员积分系统,自由设置每个积分事件的积分计算方法 灵活的网站内容发布、管理系统,每个栏目可
立即学习“Java免费学习笔记(深入)”;
location / {
root /var/www/my-java-projects;
try_files $uri $uri/ /index.html;
}
# 必须有这一行,否则 .js/.css 可能被当纯文本
include mime.types;另外,index.html 里引用的 projects.js 如果用了相对路径(如 ./data/projects.js),而实际部署结构是扁平的(所有文件都在根目录),路径错位会导致白屏——这种细节调试起来特别花时间。









