atjiu / pybbs

更实用的Java开发的社区(论坛),Better use of Java development community (forum)
GNU Affero General Public License v3.0
1.87k stars 711 forks source link

新版本的图像上传路径配置是不是有问题? #46

Closed JsonHive closed 7 years ago

JsonHive commented 7 years ago

比如说上传头像的操作 如果用main函数启动,那么上传的头像在工程的根目录下; 如果加载在Tomcat下启动,那么上传的头像在tomcat/bin文件夹内; 不管怎样前台都无法加载到这张图片。怀疑是配置了相对路径?

atjiu commented 7 years ago

打开设置,里面有上传图片的路径配置,不过,你要搭建静态化资源映射 https://github.com/tomoya92/pybbs/wiki/jar%E5%8C%85%E8%BF%90%E8%A1%8C&%E9%9D%99%E6%80%81%E6%96%87%E4%BB%B6%E9%85%8D%E7%BD%AE

JsonHive commented 7 years ago

我目前是这么做的: 1.使用nginx做静态资源文件映射,端口绑定为8018 2.配置上传图像的路径:指向本地: D:\bbs_static\static\images\avatar\ 更改域名为:http://localhost:8018/

目前可以正常的上传图片,但是不确定这是不是正确方式。 有个问题没搞明白,如果上传文件路径配置的是服务器的绝对路径,那不用nginx也能实现,使用nginx的原因是什么?是否可以将文件上传至其他服务器?

配置项中的“域名“该怎么理解?

atjiu commented 7 years ago

图片能出来就对了,域名是你站点的访问地址,目的是微博分享用的,好像还有其它地方用到了,你可以全局搜一下,我记不太清了

atjiu commented 7 years ago

其实仔细想一下就明白为啥要自己去映射一下资源了

spring-boot用jar包启动,上传的文件不能上传到jar包里面去吧,只能放在外面,这样就导致了,spring-boot启动的服务映射不到资源文件,所以要自己再处理一下资源文件,到于项目里用的css,js,imgs等文件,都已经打包到jar里了,也就可以访问到了

如果用tomcat启动,配置一个tomcat里的路径就不用再处理资源文件了,相对要文件些,不过我建议还是用jar包方式启动,原因有下:

  1. 可以做实时部署(使用docker,或者自己写脚本实现),代码修改了,就可以自动发布
  2. 服务器里一般都装有nginx,映射一下静态资源文件是非常方便的事
  3. 管理资源文件也方便些
JsonHive commented 7 years ago

对“域名“的配置还是没太搞明白,我如果想让nginx和pybbs部署在同一个服务器里,那么两者的端口肯定相互冲突的,目前我更改了“域名”的配置,将其配置成nginx的访问地址,就能让功能正常,但这就跟你说的微博分享用的功能就对应不上了,还请讲解下,或者说怎样能在一台服务器里同时部署nginx和pybbs.

JsonHive commented 7 years ago

有没有必要新增一个配置,专门配置映射静态资源的URL,指向资源的根目录

atjiu commented 7 years ago

有没有必要新增一个配置,专门配置映射静态资源的URL,指向资源的根目录

这个好像是有必要的,才想起来,现在微博分享用的地址跟上传图片的地址是一样的,这样确实是有问题的,明天我改一下提上去

atjiu commented 7 years ago

@JsonHive 不好意思现在才修好这个问题, 自从把i18n加上了,改代码费劲多了, 我就把i18n去掉了, 重新提交了下个版本, i18n的版本在分支2.4上