9月29日GoGoBook踩坑记(SSM实战项目)

9月29日GoGoBook踩坑记

  1. 在IDEA中无法访问静态页面(html).

在写后端代码之前,GoGoBook项目的页面已经写好了。今天进行整合的时候,发现无法访问。已经配置了如下:

<mvc:annotaion-driven/>
<mvc:default-servlet-handler/>
<mvc:resources mapping="" location=""/>

解决办法

耗时半天


<mvc:annotaion-driven/>
<mvc:default-servlet-handler/>
<mvc:resources mapping="/**/*.*" location="classpath:static/"/>
如上面写的:mapping是映射,location是对应的映射的真实路径。简单说就是:将任意路径+任意名称+任意扩展名 的url(静态资源)映射到location指的位置,进行拼接。
例如:我的resources(classpath路径)下的文件夹层次为:
			--static
				--html
				--css
				--js
		那么当我访问http:localhost:8080/GoGoBook/html/login.html,后,最终访问的就是就会访问到static下的html目录下的页面。也就是将两者进行了拼接。

******************
这样配置了以后,在html中引用js,css,直接这样写http://localhost:8080/css/login.css即可
  1. 使用GSON+@ResponseBody返回json乱码

解决办法

在@RequestMapping中加上@produces="text/html;charset=utf-8"

@RequestMapping(value = "/login" ,produces = "text/html;charset=utf-8")
  1. 下载图片到服务器,前端却无法访问

这个真的也耗费了很长时间才搞定。

在项目中,我将图片保存到了本地的一个位置,然后将图片路径传到了前端进行展示,但是却无法访问。最终得知是chrome浏览器的限制,限制浏览器访问本机除项目以外的位置。

解决办法

**配置Tomcat虚拟路径**
方法一:在tomcat的配置文件中server.xml中的host之间加上
<Context path="/file"      docBase="F:	estDownloadPic" debug="0" reloadable="true"/>
path为虚拟出来的路径,在项目中访问这个路径就相当于访问后面设置的真实的路径:http://localhost:8080/file/..
docBase:真实路径
之后重启服务器即可(如果未生效,检查使用的ide是否没有对修改生效)
方法二:在IDEA中配置虚拟路径
1. 点击右上角的edit configurations
2. Deployment
3. 点加号
4. External Source
5.选择真实的路径
6.填写虚拟路径

祝项目接下来顺风顺水编写完

原文地址:https://www.cnblogs.com/WcxyBlog/p/13751806.html