Cool
Cool
Published on 2022-06-21 / 23 Visits
0
0

Springboot映射虚拟路径,部署前端vue项目

#部分代码

@Override
	public void addResourceHandlers(ResourceHandlerRegistry registry) {

		//WINDOWS用
		String os=System.getProperty("os.name");
		if (os.startsWith("win")){
//			registry.addResourceHandler("/**").addResourceLocations("file:D:/viewworkspace/kaoshi-ui/dist/");
			ApplicationHome applicationHome=new ApplicationHome();
			File dir = applicationHome.getDir();
			String path = dir.toPath().toString();
			path= path+"/dist/";
			registry.addResourceHandler("/**").addResourceLocations("file:"+path);
		}else {
			ApplicationHome applicationHome=new ApplicationHome();
			File dir = applicationHome.getDir();
			String path = dir.toPath().toString();
			 path= path+"/dist/";
			registry.addResourceHandler("/**").addResourceLocations("file:"+path);
		}
	}

完整代码

package com.gxbtxc.monolithic.config;

import java.io.File;
import java.util.List;

import com.gxbtxc.monolithic.BtxcMonolithicServerApplication;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.system.ApplicationHome;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.method.support.HandlerMethodArgumentResolver;
import org.springframework.web.servlet.config.annotation.CorsRegistry;
import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
import org.springframework.web.servlet.view.freemarker.FreeMarkerConfigurer;

import com.gxbtxc.monolithic.common.resolver.CurrentUserDeptIdHandlerMethodArgumentResolver;
import com.gxbtxc.monolithic.common.resolver.CurrentUserHandlerMethodArgumentResolver;
import com.gxbtxc.monolithic.common.resolver.CurrentUserIdHandlerMethodArgumentResolver;


/**
 * MVC配置
 * @author yfm
 */
@Configuration
public class WebMvcConfig implements WebMvcConfigurer  {

	@Autowired
	private CurrentUserHandlerMethodArgumentResolver currentUserHandlerMethodArgumentResolver;

	@Autowired
	private CurrentUserIdHandlerMethodArgumentResolver currentUserIdHandlerMethodArgumentResolver;

	@Autowired
	private CurrentUserDeptIdHandlerMethodArgumentResolver currentUserDeptIdHandlerMethodArgumentResolver;

	@Override
	public void addArgumentResolvers(List<HandlerMethodArgumentResolver> argumentResolvers) {
		argumentResolvers.add(currentUserHandlerMethodArgumentResolver);
		argumentResolvers.add(currentUserIdHandlerMethodArgumentResolver);
		argumentResolvers.add(currentUserDeptIdHandlerMethodArgumentResolver);
	}

	@Bean
	public FreeMarkerConfigurer freemarkerConfig(){
		FreeMarkerConfigurer config  = new FreeMarkerConfigurer();
		config.setDefaultEncoding("utf8");
		config.setTemplateLoaderPaths("classpath:/templates/code/","classpath:/templates/view/","classpath:/templates/prometheus/");
		return config;
	}

	@Override
	public void addCorsMappings(CorsRegistry registry) {
		registry.addMapping("/**")
		.allowedOrigins("*")
		.allowCredentials(true)
		.allowedMethods("GET", "POST", "PUT", "DELETE", "OPTIONS")
		.maxAge(3600);
	}
	@Override
	public void addResourceHandlers(ResourceHandlerRegistry registry) {

		//WINDOWS用
		String os=System.getProperty("os.name");
		if (os.startsWith("win")){
//			registry.addResourceHandler("/**").addResourceLocations("file:D:/viewworkspace/kaoshi-ui/dist/");
			ApplicationHome applicationHome=new ApplicationHome();
			File dir = applicationHome.getDir();
			String path = dir.toPath().toString();
			path= path+"/dist/";
			registry.addResourceHandler("/**").addResourceLocations("file:"+path);
		}else {
			ApplicationHome applicationHome=new ApplicationHome();
			File dir = applicationHome.getDir();
			String path = dir.toPath().toString();
			 path= path+"/dist/";
			registry.addResourceHandler("/**").addResourceLocations("file:"+path);
		}
	}

	public static void main(String[] args) {
		ApplicationHome applicationHome=new ApplicationHome(BtxcMonolithicServerApplication.class.getClass());
		File dir = applicationHome.getDir();
		System.out.println(dir.toPath());

	}
}

Comment