[英]Openshift Find Static Files From Django App
我試圖將css文件添加到我在openshift上部署的django應用程序中。 當前,當在本地運行帶有調試功能的css文件時,我可以使它工作。 但是,當我將應用程序部署到openshift時,css文件沒有任何作用。 在線上的許多其他問題似乎都在引用django和openshift的舊版本(很多對wsgi
文件夾的引用似乎不再是標准的,並手動觸發了collectstatic
)
我對當前django / openshift關系的理解是,由於我正在使用openshift的django-ex模板,因此我不需要手動做collecstatic,並且在構建過程中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正在尋找css文件在/static/ldap/style.css
。 好像應該工作了,因為所有這些目錄都排好了。 關於使用django / openshift服務靜態文件還有其他我缺少的東西嗎?
終於成功了! 按照這里的步驟,我確實使用了白噪聲。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.