環(huán)境:Linux
項目:SpringBoot2.x+nginx
SpringBoot2.x使用的是內(nèi)置的Tomcat服務(wù)器,用戶若想通過http://xxx.net/配置名.png
獲取圖片采记,那么需要有如下配置:
server:
port: 9999
servlet:
context-path: /restful-client
tomcat:
uri-encoding: UTF-8
static:
pictureLocation: file:/app/share/picture/
@Configuration
public class MvcConfig implements WebMvcConfigurer {
@Value("${server.static.pictureLocation}")
private String pictureLocation;
@Override
public void addResourceHandlers(ResourceHandlerRegistry registry) {
//將本地資源交由SpringBoot2.x內(nèi)置tomcat發(fā)布
registry.addResourceHandler("/pictureLocation/**").addResourceLocations(pictureLocation);
registry.addResourceHandler("/static/**").addResourceLocations("classpath:/static/");
}
}
圖片位置:file:/app/share/picture/02/yyy.png
請求url:http://xxx.net/restful-client/pictureLocation/02/yyy.png
便可以獲取到服務(wù)器上的圖片。
但是獲取圖片時唧龄,發(fā)現(xiàn)大圖片只會顯示一半兼砖,而小圖片是可以全部顯示的既棺,如圖:
問題描述.png
問題原因:
Nginx代理后會有相應(yīng)的代理緩存區(qū)丸冕,緩存區(qū)大小默認只有幾十K耽梅,某些版本的nginx默認設(shè)置中沒有相關(guān)處理胖烛,導(dǎo)致部分文件代理時會出現(xiàn)加載不全的現(xiàn)象,其實不僅僅是JS文件众旗,只是因為框架的JS文件略大趟畏,所以經(jīng)常出現(xiàn)類似問題贡歧。
修改nginx配置
server{
...
//增加/修改下列配置
proxy_buffer_size 128k;
proxy_buffers 32 128k;
proxy_busy_buffers_size 128k;
proxy_temp_file_write_size 128k;
}