9月29日GoGoBook踩坑记
- 在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即可
- 使用GSON+@ResponseBody返回json乱码
解决办法
在@RequestMapping中加上@produces="text/html;charset=utf-8"
@RequestMapping(value = "/login" ,produces = "text/html;charset=utf-8")
- 下载图片到服务器,前端却无法访问
这个真的也耗费了很长时间才搞定。
在项目中,我将图片保存到了本地的一个位置,然后将图片路径传到了前端进行展示,但是却无法访问。最终得知是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.填写虚拟路径