+6
-1
@@ -13,6 +13,11 @@ RUN apt-get update \
|
||||
|
||||
WORKDIR /app
|
||||
COPY target/app.jar /app/app.jar
|
||||
# 镜像内 application-prod.yml 仅作「nacos 不可达时的兜底默认」;
|
||||
# 正常启动由 bootstrap.yml 从 nacos 拉取线上配置(dataId=userhome.yaml)后覆盖。
|
||||
COPY docker/application-prod.yml /app/config/application-prod.yml
|
||||
# 上传文件落容器卷,compose 里挂到宿主机 ./upload-data
|
||||
RUN mkdir -p /data/upload
|
||||
|
||||
EXPOSE 10000
|
||||
ENTRYPOINT ["sh", "-c", "java ${JAVA_OPTS:--Xms512m -Xmx1024m} -Dfile.encoding=UTF-8 -jar /app/app.jar"]
|
||||
ENTRYPOINT ["sh", "-c", "java ${JAVA_OPTS:--Xms512m -Xmx1024m} -Dfile.encoding=UTF-8 -jar /app/app.jar --spring.profiles.active=prod"]
|
||||
|
||||
@@ -0,0 +1,42 @@
|
||||
package com.yunhai.userhome.config;
|
||||
|
||||
import org.springframework.beans.factory.annotation.Value;
|
||||
import org.springframework.context.annotation.Configuration;
|
||||
import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry;
|
||||
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
|
||||
|
||||
import java.io.File;
|
||||
|
||||
/**
|
||||
* Web MVC 配置:将上传文件目录映射为静态资源,使 /upload/** URL 可直接访问磁盘文件。
|
||||
*
|
||||
* <p>对齐 UserBase 的 MyWebAppConfigurer:按子目录分别映射,
|
||||
* UserHome 当前使用 icon(图标上传)和 wallpaper(壁纸上传)两个子目录。
|
||||
*
|
||||
* <p>背景:UserSettingsController 的 iconUpload / wallpaperUpload 将文件保存到
|
||||
* ${FILE_PATH}/${子目录}/,返回 URL 如 /upload/icon/xxx.svg,
|
||||
* 但 Spring Boot 默认不映射工作目录下的文件夹为静态资源,导致 404。
|
||||
*/
|
||||
@Configuration
|
||||
public class WebMvcConfig implements WebMvcConfigurer {
|
||||
|
||||
@Value("${FILE_PATH:./upload/}")
|
||||
private String FILE_PATH;
|
||||
|
||||
@Override
|
||||
public void addResourceHandlers(ResourceHandlerRegistry registry) {
|
||||
// 转为绝对路径,避免相对路径在不同工作目录下解析不一致
|
||||
String basePath = new File(FILE_PATH).getAbsolutePath().replace("\\", "/");
|
||||
if (!basePath.endsWith("/")) {
|
||||
basePath += "/";
|
||||
}
|
||||
|
||||
// icon 子目录:/upload/icon/** → ${FILE_PATH}/icon/
|
||||
registry.addResourceHandler("/upload/icon/**")
|
||||
.addResourceLocations("file:" + basePath + "icon/");
|
||||
|
||||
// wallpaper 子目录:/upload/wallpaper/** → ${FILE_PATH}/wallpaper/
|
||||
registry.addResourceHandler("/upload/wallpaper/**")
|
||||
.addResourceLocations("file:" + basePath + "wallpaper/");
|
||||
}
|
||||
}
|
||||
@@ -69,8 +69,10 @@ logging:
|
||||
|
||||
# ===== 文件上传与学校配置 =====
|
||||
# 文件存储根目录(UserSettingsController 壁纸/图标上传使用)
|
||||
# 本地默认 ./upload/(相对工作目录);生产由 Nacos 覆盖为 /data/upload(容器卷挂载到宿主机)
|
||||
FILE_PATH: ./upload/
|
||||
# 文件 Web 访问前缀(prod 由 Nacos 覆盖)
|
||||
# 文件 Web 访问前缀(拼接壁纸完整 URL 用,见 UserSettingsController.getUserWallpaperList)
|
||||
# 本地 http://localhost:8070/upload/;生产由 Nacos 覆盖为 http://home.yunhaixingtong.com/userhome/upload/
|
||||
FILE_WEB_PATH: http://localhost:8070/upload/
|
||||
# 学校配置接口基址(SchSettingsController 使用,prod 由 Nacos 覆盖)
|
||||
SCH_CONF_URL: ""
|
||||
|
||||
Reference in New Issue
Block a user