1 Star 0 Fork 301

gebing / 最美博客 Vue2

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
克隆/下载
贡献代码
同步代码
取消
提示: 由于 Git 不支持空文件夾,创建文件夹后会生成空的 .keep 文件
Loading...
README
Apache-2.0

POETIZE(Vue2)

POETIZE:作诗,有诗意地描写。

网站示例

poetize.cn

这是我的个人网站,我的生活倒影,有诗意地记录自己的生活。

首页

Star

ps: 虽然我知道,大部分人都是来了直接下载源代码后就潇洒的离开。

虽然我知道现实就是如此的残酷,但我还是要以我萤虫之力对各位到来的同仁发出一声诚挚的嘶吼: StarStarStar

相信各位同仁看到下面的项目介绍一定会心动的,心想怎么没有早点遇到这么漂亮的博客项目。在搭建这个美丽的网站同时,何不Star,为这个项目点赞呢!

注意

POETIZE - 最美博客官方仓库已迁移至:https://gitee.com/littledokey/poetize

如果您觉得POETIZE - 最美博客项目还不错,请务必Star这个项目,谢谢。

技术栈

前端技术:Vue2(博客系统),Vue3(IM 聊天室系统),Element UI(Vue2),Element-Plus UI(Vue3),Naive UI(Vue3)

后端技术:Java,SpringBoot,MySQL,Mybatis-Plus,t-io,qiniu-java-sdk,spring-boot-starter-mail

网站简介

这是一个 SpringBoot + Vue2 + Vue3 的产物,支持移动端自适应,配有完备的前台和后台管理功能。

网站分两个模块:

  • 博客系统:具有文章,表白墙,图片墙,收藏夹,乐曲,视频播放,留言,友链,时间线,后台管理等功能。
  • 聊天室系统:具有朋友圈(时间线),好友,群等功能。

本网站采用前后端分离进行实现,两个前端项目通过Nginx代理,后端使用Java。

启动网站需要安装Nginx、Java、MySQL,然后打包前后端项目并部署。

文件服务可以使用七牛云,也可以使用服务器。

Vue3(IM 聊天室系统)是非必须的,如果部署需要依赖博客,然后从博客的非礼勿言进入,因为登录模块在博客。

网站示例

博客

文章速览、文章分类

首页文章速览

分类页面

文章详情页:文章、视频功能与留言

文章详情页

文章视频功能

文章留言区域

恋爱笔记与旅拍

恋爱笔记页面

旅拍页面

百宝箱、弹幕墙与友人帐

百宝箱

弹幕墙

友人帐

聊天室与朋友圈

聊天室

朋友圈

后台管理系统

访问统计、基础设置与文件管理

后台管理访问统计

后台管理网站基础设置

后台管理文件资源管理

文章管理与新增文章

后台管理文章管理

后台管理新增文章

更新进度

2023年1月1日更新

  • 新增:音乐盒功能
  • 新增:表白墙功能
  • 优化:文件管理
  • 优化:登录支持多端登录
  • 优化:登录权限过期时间重置
  • 优化:前端美化
  • 优化:留言分类与资源整合

2023年4月1日更新

  • 新增:百宝箱(收藏夹)
  • 优化:首页
  • 优化:前端美化
  • 优化:资源整合

2023年7月20日更新

  • 新增:旅拍模块
  • 新增:看板娘
  • 优化:聊天室脚本过滤
  • 优化:每个IP和账号限制每天接口保存次数
  • 优化:Bug修复

2023年8月20日更新

  • 新增:访客统计(博客首页展示总访问量,后台管理系统首页展示IP/地区/用户维度的访问统计)
  • 新增:搜索(标题与内容匹配。标题匹配放在上面,内容匹配放在下面。匹配多个标题或者多个内容时间倒叙排列)
  • 新增:音乐按照列表顺序播放,列表中最后一首歌播放完后停止
  • 新增:聊天室搜索功能(搜索框下的内容筛选)
  • 新增:后台管理系统【欢迎光临】
  • 优化:前端美化
  • 优化:个别Bug修复

2023年9月1日更新:安全,安全,安全

  • 优化:所有保存接口、邮件发送接口、文件上传接口都限制次数,防止恶意调用
  • 优化:修复vuex中用户信息丢失错乱的Bug
  • 优化:文件上传模块改造,每次上传之前获取上传密钥,每个密钥只能上传一个文件
  • 优化:个别Bug修复

2023年10月1日更新

  • 新增:文章加密
  • 新增:文章订阅
  • 新增:文件上传模块改造,支持多平台(目前对接本地)
  • 优化:友人帐及其他模块样式调整

2024年1月10日更新

  • 新增:首页分类预览
  • 新增:文章视频
  • 新增:文章目录
  • 新增:留言与朋友圈图片放大
  • 新增:上传进度条与原始文件名记录
  • 优化:百宝箱及其他模块样式调整

========================================================================================================================

2024年1月24日更新

配置

全局搜索$$$$,配置邮箱、MySQL、访问路径等。

全局搜索https://,将图片资源替换成自己自定义的内容,提高网站美化度。

POETIZE交流群、PR,请加作者WX好友

个人名片

开源不易,欢迎赞助这个项目维持网站运行,您将获得部署文档:https://poetize.cn/article/26

欢迎关注作者B站

B站搜索用户【寻国记】。

【挑战最美博客!个人博客网站食用教程。这是一个 SpringBoot 与 Vue 的产物,在此公开,一起学习,共同成长。】 https://www.bilibili.com/video/BV1eM41167Ks/?share_source=copy_web

nginx配置示例

worker_processes  1;
 
events {
    worker_connections  1024;
}
 
http {
    include            mime.types;
 
    default_type       application/octet-stream;
 
    sendfile           on;
 
    keepalive_timeout  65;
 
    server {
        listen       80;
        server_name  localhost;
 
        location / {
            root       /home/poetry-vue2;
            index      index.html;
            try_files  $uri $uri/ /index.html;
        }
 
        location /im {
            alias      /home/poetry-vue3;
            index      index.html;
            try_files  $uri $uri/ /index.html;
        }
 
        location /api/ {
            rewrite           ^/api/(.*)$ /$1 break;
            proxy_pass        http://127.0.0.1:8081;
            proxy_redirect    off;
            proxy_set_header  Host $host;
            proxy_set_header  X-real-ip $remote_addr;
            proxy_set_header  X-Forwarded-For $proxy_add_x_forwarded_for;
        }
 
        location /socket {
            proxy_pass          http://127.0.0.1:9324;
            proxy_http_version  1.1;
            proxy_set_header    Upgrade $http_upgrade;
            proxy_set_header    Connection "upgrade";
            proxy_read_timeout  600s;
        }
    }
}

文件服务配置示例

在application.yml加入如下配置:

server:
  tomcat:
    # 请求体最大允许大小
    max-http-form-post-size: 35MB
 
spring:
  servlet:
    multipart:
      # 单个文件最大允许大小
      max-file-size: 30MB
      # 单个请求所有文件总和最大允许大小
      max-request-size: 30MB
 
store:
  # 默认存储平台
  type: qiniu
 
# 存储平台:服务器
local:
  # 开启服务器存储平台。使用哪个存储平台就配置哪个存储平台的参数,并开启此存储平台:enable: true。
  enable: true
  uploadUrl:
  downloadUrl:
 
# 存储平台:七牛云
qiniu:
  # 开启七牛云存储平台。使用哪个存储平台就配置哪个存储平台的参数,并开启此存储平台:enable: true。
  enable: true
  accessKey:
  secretKey:
  bucket:
  downloadUrl:


在nginx.conf加入如下配置:

# 禁止访问隐藏目录(.git/)和隐藏文件(.file)和遍历目录(../)
location ~ /\. {
    deny all;
    # 关闭相关的访问日志
    access_log off;
    # 关闭相关的错误日志
    log_not_found off;
}
 
location /static/ {
    # 静态文件存储的目录
    alias /home/file/;
    # 禁止目录列表
    autoindex off;
    # 设置防盗链
    valid_referers poetize.cn;
    if ($invalid_referer) {
        # 如果防盗链不通过,返回 403 禁止访问
        return 403;
    }
}

然后将文件上传到/home/file目录下访问即可。

例如有文件:/home/file/bg/bg.jpg
访问链接:https://poetize.cn/static/bg/bg.jpg
Apache License Version 2.0, January 2004 http://www.apache.org/licenses/ TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION 1. Definitions. "License" shall mean the terms and conditions for use, reproduction, and distribution as defined by Sections 1 through 9 of this document. "Licensor" shall mean the copyright owner or entity authorized by the copyright owner that is granting the License. "Legal Entity" shall mean the union of the acting entity and all other entities that control, are controlled by, or are under common control with that entity. For the purposes of this definition, "control" means (i) the power, direct or indirect, to cause the direction or management of such entity, whether by contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the outstanding shares, or (iii) beneficial ownership of such entity. "You" (or "Your") shall mean an individual or Legal Entity exercising permissions granted by this License. "Source" form shall mean the preferred form for making modifications, including but not limited to software source code, documentation source, and configuration files. "Object" form shall mean any form resulting from mechanical transformation or translation of a Source form, including but not limited to compiled object code, generated documentation, and conversions to other media types. "Work" shall mean the work of authorship, whether in Source or Object form, made available under the License, as indicated by a copyright notice that is included in or attached to the work (an example is provided in the Appendix below). "Derivative Works" shall mean any work, whether in Source or Object form, that is based on (or derived from) the Work and for which the editorial revisions, annotations, elaborations, or other modifications represent, as a whole, an original work of authorship. For the purposes of this License, Derivative Works shall not include works that remain separable from, or merely link (or bind by name) to the interfaces of, the Work and Derivative Works thereof. "Contribution" shall mean any work of authorship, including the original version of the Work and any modifications or additions to that Work or Derivative Works thereof, that is intentionally submitted to Licensor for inclusion in the Work by the copyright owner or by an individual or Legal Entity authorized to submit on behalf of the copyright owner. For the purposes of this definition, "submitted" means any form of electronic, verbal, or written communication sent to the Licensor or its representatives, including but not limited to communication on electronic mailing lists, source code control systems, and issue tracking systems that are managed by, or on behalf of, the Licensor for the purpose of discussing and improving the Work, but excluding communication that is conspicuously marked or otherwise designated in writing by the copyright owner as "Not a Contribution." "Contributor" shall mean Licensor and any individual or Legal Entity on behalf of whom a Contribution has been received by Licensor and subsequently incorporated within the Work. 2. Grant of Copyright License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare Derivative Works of, publicly display, publicly perform, sublicense, and distribute the Work and such Derivative Works in Source or Object form. 3. Grant of Patent License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable (except as stated in this section) patent license to make, have made, use, offer to sell, sell, import, and otherwise transfer the Work, where such license applies only to those patent claims licensable by such Contributor that are necessarily infringed by their Contribution(s) alone or by combination of their Contribution(s) with the Work to which such Contribution(s) was submitted. If You institute patent litigation against any entity (including a cross-claim or counterclaim in a lawsuit) alleging that the Work or a Contribution incorporated within the Work constitutes direct or contributory patent infringement, then any patent licenses granted to You under this License for that Work shall terminate as of the date such litigation is filed. 4. Redistribution. You may reproduce and distribute copies of the Work or Derivative Works thereof in any medium, with or without modifications, and in Source or Object form, provided that You meet the following conditions: (a) You must give any other recipients of the Work or Derivative Works a copy of this License; and (b) You must cause any modified files to carry prominent notices stating that You changed the files; and (c) You must retain, in the Source form of any Derivative Works that You distribute, all copyright, patent, trademark, and attribution notices from the Source form of the Work, excluding those notices that do not pertain to any part of the Derivative Works; and (d) If the Work includes a "NOTICE" text file as part of its distribution, then any Derivative Works that You distribute must include a readable copy of the attribution notices contained within such NOTICE file, excluding those notices that do not pertain to any part of the Derivative Works, in at least one of the following places: within a NOTICE text file distributed as part of the Derivative Works; within the Source form or documentation, if provided along with the Derivative Works; or, within a display generated by the Derivative Works, if and wherever such third-party notices normally appear. The contents of the NOTICE file are for informational purposes only and do not modify the License. You may add Your own attribution notices within Derivative Works that You distribute, alongside or as an addendum to the NOTICE text from the Work, provided that such additional attribution notices cannot be construed as modifying the License. You may add Your own copyright statement to Your modifications and may provide additional or different license terms and conditions for use, reproduction, or distribution of Your modifications, or for any such Derivative Works as a whole, provided Your use, reproduction, and distribution of the Work otherwise complies with the conditions stated in this License. 5. Submission of Contributions. Unless You explicitly state otherwise, any Contribution intentionally submitted for inclusion in the Work by You to the Licensor shall be under the terms and conditions of this License, without any additional terms or conditions. Notwithstanding the above, nothing herein shall supersede or modify the terms of any separate license agreement you may have executed with Licensor regarding such Contributions. 6. Trademarks. This License does not grant permission to use the trade names, trademarks, service marks, or product names of the Licensor, except as required for reasonable and customary use in describing the origin of the Work and reproducing the content of the NOTICE file. 7. Disclaimer of Warranty. Unless required by applicable law or agreed to in writing, Licensor provides the Work (and each Contributor provides its Contributions) on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied, including, without limitation, any warranties or conditions of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A PARTICULAR PURPOSE. You are solely responsible for determining the appropriateness of using or redistributing the Work and assume any risks associated with Your exercise of permissions under this License. 8. Limitation of Liability. In no event and under no legal theory, whether in tort (including negligence), contract, or otherwise, unless required by applicable law (such as deliberate and grossly negligent acts) or agreed to in writing, shall any Contributor be liable to You for damages, including any direct, indirect, special, incidental, or consequential damages of any character arising as a result of this License or out of the use or inability to use the Work (including but not limited to damages for loss of goodwill, work stoppage, computer failure or malfunction, or any and all other commercial damages or losses), even if such Contributor has been advised of the possibility of such damages. 9. Accepting Warranty or Additional Liability. While redistributing the Work or Derivative Works thereof, You may choose to offer, and charge a fee for, acceptance of support, warranty, indemnity, or other liability obligations and/or rights consistent with this License. However, in accepting such obligations, You may act only on Your own behalf and on Your sole responsibility, not on behalf of any other Contributor, and only if You agree to indemnify, defend, and hold each Contributor harmless for any liability incurred by, or claims asserted against, such Contributor by reason of your accepting any such warranty or additional liability. END OF TERMS AND CONDITIONS APPENDIX: How to apply the Apache License to your work. To apply the Apache License to your work, attach the following boilerplate notice, with the fields enclosed by brackets "[]" replaced with your own identifying information. (Don't include the brackets!) The text should be enclosed in the appropriate comment syntax for the file format. We also recommend that a file or class name and description of purpose be included on the same "printed page" as the copyright notice for easier identification within third-party archives. Copyright [yyyy] [name of copyright owner] Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.

简介

个人博客 聊天室 IM,挑战最美博客,使用 SpringBoot 和 Vue 的个人网站 展开 收起
Apache-2.0
取消

发行版

暂无发行版

贡献者

全部

近期动态

加载更多
不能加载更多了
1
https://gitee.com/inisted/poetize-vue2.git
git@gitee.com:inisted/poetize-vue2.git
inisted
poetize-vue2
最美博客 Vue2
master

搜索帮助