为什么Jenkins启动Django服务器会给我404,但是手动运行相同的脚本可以正常工作?

2024-05-19 19:17:44 发布

您现在位置:Python中文网/ 问答频道 /正文

这是我在jenkins服务器上运行的fabric脚本。你知道吗

sudo('/home/myjenkins/killit.sh',pty=False)
sudo('/home/myjenkins/makedir.sh',pty=False)
sudo('/home/myjenkins/runit.sh',pty=False)

这将杀死旧服务器,创建一个virtualenv,安装需求并重新启动服务器。你知道吗

问题是启动服务器的脚本-运行.sh:-

nohup /home/myjenkins/devserver/dev/bin/python /home/myjenkins/devserver /workspace/manage.py runserver --noreload 0:80 >> jenkins.out &

当启动服务器的jenkins服务器和我导航到主页时,它会给我一个404页找不到。上面写着/静态/索引.html找不到。但文件存在。当我开sudo bash的时候运行.sh“而且我进入主页,效果很好。你知道吗

mkdir -p /home/myjenkins/devserver
cp -rf /home/myjenkins/workspace /home/jenkins/devserver/
cp -f /home/myjenkins/dev_settings.py /home/myjenkins/devserver/workspace/mywebsite/settings.py
cd /home/myjenkins/devserver
virtualenv -p python3 dev
cd /home/myjenkins/devserver/workspace
../dev/bin/pip install -r requirements.txt

如果你需要的话,请问我更多的细节。你知道吗

编辑日期:2018年9月2日

当我从包含管理.py,服务器能够为文件提供服务。但是Jenkins是从主文件夹启动脚本的,如果我也从主文件夹启动脚本,服务器就找不到文件了。更多细节请看我的评论。如果有人能解释为什么会发生这种情况,那就太好了,尽管我已经在脚本中指定了完整的路径。你知道吗

nohup /home/myjenkins/devserver/dev/bin/python /home/myjenkins/devserver /workspace/manage.py runserver --noreload 0:80 >> jenkins.out &


Tags: 文件pydev服务器脚本falsehomebin
1条回答
网友
1楼 · 发布于 2024-05-19 19:17:44

好吧,我知道整件事了。我的django服务器从错误的文件夹获取了npm构建的输出。你知道吗

在设置.py文件中,变量STATICFILES_DIRS被设置为:-

STATICFILES_DIRS = ('frontend/dist',)

而不是:-

STATICFILES_DIRS = (os.path.join(BASE_DIR,'frontend/dist'),)

因此,当Jenkins运行脚本时,它是从主文件夹运行的。这使得Django的staticfiles查找程序可以查看/home/myjenkins/frontend/dist,而不是相对的“../frontend/dist”

相关问题 更多 >