我正在尝试将css文件添加到我在openhift上部署的django应用程序中。目前,我可以在本地运行调试时使用css文件。但是,当我将我的应用程序部署到openshift时,css文件没有任何效果。在线的许多其他问题似乎都是指旧版本的django和openshift(很多对wsgi
文件夹的引用,它们似乎不再是标准的并且手动触发collectstatic
< / p>
我对当前django / openshift关系的理解是我不需要手动执行collecstatic,因为我使用了openshift中的django-ex模板,并且在构建过程中,collectstatic命令自动运行,其输出为我可以在日志中看到。值得注意的是,我可以看到我的应用程序的style.css文件被复制到该日志中的STATIC_ROOT。
我项目根目录中的项目结构是:
.
├── db.sqlite3
├── djangoWrapper
│ ├── __init__.py
│ ├── settings.py
│ ├── templates
│ │ └── djangoWrapper
│ │ └── index.html
│ ├── urls.py
│ ├── views.py
│ └── wsgi.py
├── gitlab-ci.yml
├── ldap
│ ├── admin.py
│ ├── apps.py
│ ├── forms.py
│ ├── __init__.py
│ ├── migrations
│ ├── models.py
│ ├── static
│ │ └── ldap
│ │ └── style.css
│ ├── templates
│ │ └── ldap
│ │ ├── apiOffline.html
│ │ ├── index.html
│ │ ├── results.html
│ │ └── search.html
│ ├── tests.py
│ ├── urls.py
│ └── views.py
├── manage.py
├── openshift
├── README.md
├── requirements.txt
这是我在settings.py中所做的事情:
BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
STATIC_URL = '/static/'
STATICFILES_DIRS = [os.path.join(BASE_DIR, "ldap", "static"),]
STATIC_ROOT = os.path.join(BASE_DIR, 'static')
在我的html文件中,我正在尝试使用
加载css文件{% load static %}
<link rel="stylesheet" type="text/css" href="{% static 'ldap/style.css' %}">
<head>
部分中的。
我试图在这里进行一些调试,因为在我进行部署之前会假设我的静态文件没有放在正确的位置/ djgano无法找到它们。所以我把一些打印件放到我的应用程序中并在openshift上部署它并获得以下信息:
BASE_DIR: /opt/app-root/src
STATIC_ROOT: /opt/app-root/src/static
STATIC_URL: /static/
APP_VIEW_DIR: /opt/app-root/src/ldap/views.py
以及将<p>"{%static 'ldap/style.css' %}"</p>
放入html文件中,该文件显示为/static/ldap/style.css
从这些花絮中,我知道openshift的根目录是/opt/app-root/src/
,我的静态文件在/opt/app-root/src/static
,而我的html正在/static/ldap/style.css
中寻找css文件。这似乎应该工作,因为所有这些目录排队。还有其他关于使用django / openshift提供静态文件的东西我在这里缺少吗?