开发web项目时,图片相对路径的获取、保存、相关配置问题

本文主要记录本人的开发过程中的配置问题记录

开发情况:前后端不分离;

在web开发中,碰到数据库保存图片路径为相对路径(如:/image/60123200007.jpg),图片放置位置实际为本项目的根目录上(跟src同级,原因:避免项目清除缓存时,重新部署误删);

本人是利用服务器Tomcat的docBase和path属性,完成对图片资源相对路径的转换。操作步骤如下:

  • 找到Tomcat安装的根目录,然后修改conf子目录下的server.xml文件,找到Host节点,并在节点内增加以下配置:<Context path="/image/" docBase="E:\workSpace\**项目\image\" reloadable="true"/>
<Host name="localhost"  appBase="webapps" unpackWARs="true" autoDeploy="true">
            
        <Context path="/image/" docBase="E:\workSpace\**项目\image\" reloadable="true"/>

        <!-- SingleSignOn valve, share authentication between web applications
             Documentation at: /docs/config/valve.html -->
        <!--
        <Valve className="org.apache.catalina.authenticator.SingleSignOn" />
        -->

        <!-- Access log processes all example.
             Documentation at: /docs/config/valve.html
             Note: The pattern used is equivalent to using pattern="common" -->
        <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
               prefix="localhost_access_log" suffix=".txt"
               pattern="%h %l %u %t &quot;%r&quot; %s %b" />

</Host>

 

若开发工具使用的是IntelliJ IDEA,则需要添加配置步骤:

方法一:

在Tomcat服务器设置栏中需要勾选“Deploy applications configured in Tomcat instance”。

方法二:

设置Tomcat服务器的虚拟路径,即在Deployment中引入图片资源存放的本地路径,再设置图片资源相对路径的前缀,具体做法如下图所示:

选择 External Source... 弹窗中选择图片坐在目录,确定后生成上图所示的"upload"项,点击确认,重启项目即可。

如果是使用Eclipse工具,那就不需要作修改,直接就可以访问了。

 

开发过程中,相关路径的获取如下代码参考:

private static String getRequestUrl(){
		//服务器本地保存图片路径
		HttpServletRequest request = ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest();
		//获得当前项目访问的地址:http://127.0.0.1:8080
		String url = request.getScheme() + "://" + request.getServerName() + ":" + request.getServerPort();
		return url;
	}

    public static String getUploadPath(HttpServletRequest request){
        String savePath = request.getSession().getServletContext().getRealPath("");
        savePath = savePath.substring(0,savePath.lastIndexOf("\\"));
        return savePath+"/";
    }

 

 

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值