gpt4 book ai didi

python - Gunicorn docker 化后找不到静态文件

转载 作者:行者123 更新时间:2023-12-01 02:54:02 25 4
gpt4 key购买 nike

我在 Ubuntu 17.04 Zesty 上使用 docker 17.05.0-cs Edge。我有一个我构建的 Gunicorn/Django 应用程序 here 。它在 dockerized 之前运行良好,但在 docker build 之后,gunicorn 看不到静态文件。这是Dockerfile:

# Dockerfile

# FROM base image to build upon
FROM phusion/baseimage

# RUN install python and pip
RUN apt-get update
RUN apt-get install -y python python-pip python-dev

# ENV set environment directory tree
ENV PROJECT=mysite
ENV CONTAINER_HOME=/opt
ENV CONTAINER_PROJECT=$CONTAINER_HOME/$PROJECT

# move to project WORKDIR
WORKDIR $CONTAINER_PROJECT

# COPY project to container directory
COPY . $CONTAINER_PROJECT

# RUN pip and install requirements
RUN pip install -r requirements.txt


# COPY start.sh into known container location
COPY start.sh /start.sh

# EXPOSE port 8000 to allow communication to/from server
EXPOSE 8000

# CMD execute start.sh to start the server running.
CMD ["/start.sh"]
# done!

应用程序运行并显示页面,有趣的是,它甚至应用了 css 模板,同时说找不到 bootstrap.cssbootstrap.js 。但它不会执行切换菜单的脚本。当前的模板只是我初始构建的一个工件,我很确定新的模板甚至不会使用 bootstrap.js。它可以运行,但切换不起作用,我知道这是 bootstrap.js 的一个功能。这是 sudo docker run -it -p 8000:8000 dockerized_site 的输出:

Starting Gunicorn.
[2017-06-07 00:38:56 +0000] [1] [INFO] Starting gunicorn 19.6.0
[2017-06-07 00:38:56 +0000] [1] [INFO] Listening at: http://0.0.0.0:8000 (1)
[2017-06-07 00:38:56 +0000] [1] [INFO] Using worker: sync
[2017-06-07 00:38:56 +0000] [9] [INFO] Booting worker with pid: 9
[2017-06-07 00:38:56 +0000] [10] [INFO] Booting worker with pid: 10
[2017-06-07 00:38:56 +0000] [11] [INFO] Booting worker with pid: 11
Not Found: /js/bootstrap.min.js
Not Found: /js/jquery.js
Not Found: /js/bootstrap.min.js
Not Found: /favicon.ico

我将静态文件 url 模式附加到 urls.py 中,我很确定这与容器构建有关,或者可能与 settings.py 有关。也许我需要为静态文件添加一个环境目录?当然,任何帮助都是值得赞赏的。

最佳答案

这是你的问题:

您的css工作正常:

<link href="{% static 'css/bootstrap.min.css' %}" rel="stylesheet">

您的js不工作(404):

<script src="{% static '/js/jquery.js' %}"></script>

看出区别了吗?

领先/在/js 的路径中

这解决了您的问题:

<script src="{% static 'js/jquery.js' %}"></script>

我克隆了您的存储库并修复了模板,并且我已经解决了您的问题。请修复其他<script>

关于python - Gunicorn docker 化后找不到静态文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44401672/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com