来源:
https://www.acwing.com/activity/content/code/content/2037153/
y总教程:https://www.acwing.com/file_system/file/content/whole/index/content/3257028/
之前项目是通过8000端口直接访问django,使用nginx,相当于给django外面套了nginx,通过443与80端口访问nginx,而nginx又通过uwsgi与django连接,最终达到访问django目的,这样的效率远高与直接通过8000访问runserver manage.py。
将运行的网站退出 ssh server1 (登到安装docker的服务器) docker commit django_server django_lesson:1.1 (打包成镜像) docker rmi -f $(docker images | grep "2.配置Nginx" | awk "{print $3}") (清除无用镜像) docker stop django_server 暂停容器 docker rm django_server 删除容器 到自己租的云平台开放 443 和 80端口 使用保存的镜像重新创建容器 docker run -p 20000:22 -p 8000:8000 -p 80:80 -p 443:443 --name django_server -itd django_lesson:1.1
进入创建应用 将自己的IP写入到服务器IP中 sudo cp .vimrc .tmux.conf /root/ 将vimrc和tmux复制到root目录下(先回到家目录下) cd /etc/nginx sudo vim nginx.conf 将配置好的nginx.conf复制成自己的 sudo mkdir cert cd /etc/nginx/cert sudo vim acapp.key 复制acpp.key(创建应用中配置好的) sudo vim acapp.pem 复制acpp.pem(创建应用中配置好的) sudo /etc/init.d/nginx start 启动nginx sudo nginx -s reload 没有显示OK的话重新加载一下 查看nginx错误所在 cd /var/log/nginx/ sudo vim error.log 错误日志3.修改django配置
cd ~/acapp/acapp
vim settings.py
ALLOWED_HOSTS = {"xxx.xxx.xxx.xxx","appxxx.acapp.acwing.com.cn"}
DEBUG = False 修改为上线模式,原本是调试模式,但无伤大雅,可改可不改
python3 manage.py collectstatic 归档static 在~/acapp/目录下
cd ~/acapp/scripts/
vim uwsgi.ini 配置uwsgi.ini
ctrl + c 退出 python3 manage.py runserver 0.0.0.0:8000
uwsgi --ini scripts/uwsgi.ini 使用uwsgi启动服务
需要增加的uwsgi.ini配置文件:
[uwsgi] socket = 127.0.0.1:8000 chdir = /home/acs/acapp wsgi-file = acapp/wsgi.py master = true processes = 2 threads = 5 vacuum = true
这里如果修改了uwsgi.ini需要重新启动的,直接:sudo pkill -f uwsgi -9之后重新启动即可
4.acwing中填写创建信息https://appxxx.acapp.acwing.com.cn/static/css/game.css css地址 https://appxxx.acapp.acwing.com.cn/static/js/dist/game.js js地址 AcGame 主类名5.修改打包脚本
cd ~/acapp/scripts/ vim compress_game_js.sh 加入 echo yes | python3 manage.py collectstatic (进行一次归档)
这里如果路径设置有问题的情况下可以选择不修改,执行之前的compress_game_js.sh,然后再执行python3 manage.py collectstatic效果相同。每次修改完文件都要进行此操作。
6.对小球坐标无法适应页面进行修改cd ~/acapp/game/static/js/src/playground/player
vim zbase.js
将在画布上的坐标修改为实际坐标
this.playground.game_map.$canvas.mousedown(function(e) {
const rect = outer.ctx.canvas.getBoundingClientRect();
if (e.which === 3) {
outer.move_to(e.clientX - rect.left, e.clientY - rect.top);
} else if (e.which === 1) {
if (outer.cur_skill === "fireball") {
outer.shoot_fireball(e.clientX - rect.left, e.clientY - rect.top);
}
outer.cur_skill = null;
}
});
./scripts/compress_game_js.sh (进行一次打包和归档)
F12 进行硬性清理缓存
7.显示菜单 调整游戏背景大小
cd ~/acapp/game/static/js/src
vim zbase.js
// this.menu = new AcGameMenu(this); 取消注释
cd ~/acapp/game/static/js/src/playground
vim zbase.js
//this.hide(); 取消注释
初始化内容改为在show()时
this.root.$ac_game.append(this.$playground);
this.width = this.$playground.width();
this.height = this.$playground.height();
this.game_map = new GameMap(this);
this.players = []; //初始化一个人物数组
this.players.push(new Player(this, this.width / 2, this.height / 2, this.height * 0.05, "white", this.height * 0.15, true)); //中心点坐标 半径 颜色 移动速度, is_me
for (let i = 0; i < 7; i ++ ) {
this.players.push(new Player(this, this.width / 2, this.height / 2, this.height * 0.05, this.get_random_color(), this.height * 0.15, false));
}
./scripts/compress_game_js.sh (进行一次打包和归档)
F12 进行硬性清理缓存
8.调整游戏开始页面
cd ~/acapp/game/static/css vim game.css .ac-game-menu-field 固定值改为相对值 top: 40%; left: 20%; .ac-game-menu-field-item height: 6vh; font-size: 4vh; padding: 2vh; //删除内边距 ./scripts/compress_game_js.sh (进行一次打包和归档) F12 进行硬性清理缓存



