zoukankan      html  css  js  c++  java
  • springboot内置tomcat配置虚拟路径

     

      在Springboot中默认的静态资源路径有:classpath:/METAINF/resources/classpath:/resources/classpath:/static/classpath:/public/,从这里可以看出这里的静态资源路径都是在classpath中(也就是在项目路径下指定的这几个文件夹)

      试想这样一种情况:一个网站有文件上传文件的功能,如果被上传的文件放在上述的那些文件夹中会有怎样的后果?

    • 网站数据与程序代码不能有效分离;

    • 当项目被打包成一个.jar文件部署时,再将上传的文件放到这个.jar文件中是有多么低的效率;

    • 网站数据的备份将会很痛苦。

      此时可能最佳的解决办法是将静态资源路径设置到磁盘的基本个目录。Springboot中可以直接在配置文件中覆盖默认的静态资源路径的配置信息:application.properties配置文件如下:

    spring.mvc.static-path-pattern=/**
    
    spring.resources.static-locations=classpath:/META-INF/resources/,classpath:/resources/,classpath:/static/,classpath:/public/,file:这里写自己的上传文件路径(注意要以/结尾)

      spring.mvc.static-path-pattern=/**表示所有的访问都经过静态资源路径;

      spring.resources.static-locations在这里配置静态资源路径,前面说了这里的配置是覆盖默认配置,所以需要将默认的也加上否则staticpublic等这些路径将不能被当作静态资源路径,在这个最末尾的file:${web.upload-path}之所有要加file:是因为指定的是一个具体的硬盘路径,其他的使用classpath指的是系统环境变量。

      由于前面已经在静态资源路径中上传了一个名为1.jpg的图片,也使用server.port=1122设置了端口号为1122,所以可以通过浏览器打开:http://localhost:1122/1.jpg访问到刚刚上传的图片。但是要注意,如果你在springboot的配置文件中加了属性server.context-path,即项目名,那么访问的时候一定要加上这个配置的属性值,不然404.

    参考博客:https://blog.csdn.net/qq_36750461/article/details/85050946

    在全栈的道路上,积极向上、成熟稳重、谦虚好学、怀着炽热的心向前方的走得更远。
  • 相关阅读:
    NTP on FreeBSD 12.1
    Set proxy server on FreeBSD 12.1
    win32 disk imager使用后u盘容量恢复
    How to install Google Chrome Browser on Kali Linux
    Set NTP Service and timezone on Kali Linux
    Set static IP address and DNS on FreeBSD
    github博客标题显示不了可能是标题包含 特殊符号比如 : (冒号)
    server certificate verification failed. CAfile: none CRLfile: none
    删除文件和目录(彻底的)
    如何在Curl中使用Socks5代理
  • 原文地址:https://www.cnblogs.com/DDgougou/p/10821872.html
Copyright © 2011-2022 走看看