使用 Django 在 Openshift 上静态文件
Static files on Openshift with Django
我找不到我的静态文件,如 css、js 和图片。我收到 404 错误页面。
在我的 settings django 我有
STATIC_ROOT = '/var/lib/openshift/*id*/app-root/repo/*project*/*app*'
STATIC_URL = '/static/'
我的文件系统是
- project
- app
- wsgi.py
- static # I also tried to move this folder in wsgi folder
- css
- base.css
- ...
我试图将 static 文件夹 移动到之前创建的 wsgi 文件夹。
我还尝试将 我的静态文件夹或 wsgi 文件夹移动到 openshift 的 data 文件夹中,但没有成功。
我关注了一些来自 Whosebug 的帮助帖子,但没有找到我的答案
- Static files on OpenShift Django
- Serving Django static files in OpenShift
你能帮我配置我的静态文件夹吗?
谢谢
在您的 settings.py 中确保您拥有:
import os
import sys
BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
STATICFILES_DIRS = (os.path.join(BASE_DIR, 'static_files'),
) # create static_files dir and place there your static
# files to be collected, as static is the destination
# directory of your local and other Django
# modules static files
STATIC_ROOT = os.path.join(BASE_DIR, 'static', )
STATIC_URL = 'http://yourdomain.com/static/'
完成后运行
./manage.py collectstatic
确保你有像这样的树
yourproject+
|
+-yourproject
| |
| +urls.py
| |
| +settings.py
| |
| +wsgi.py
|
+manage.py
|
+static_files
|
+static
您还需要确保您的 manage.py 修改为:
import os
import sys
if __name__ == "__main__":
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "yourproject.settings")
from django.core.management import execute_from_command_line
execute_from_command_line(sys.argv)
和wsgi.py成为
import os
from django.core.wsgi import get_wsgi_application
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "yourproject.settings")
application = get_wsgi_application()
在wsgi.py我必须有
sys.path.append(os.path.join(os.environ['OPENSHIFT_REPO_DIR']))
os.environ['DJANGO_SETTINGS_MODULE' ] = 'project.settings.app'
在我的 settings.py
STATIC_ROOT = os.path.join(os.getenv('OPENSHIFT_REPO_DIR'), 'wsgi/static', )
STATIC_URL = '/static/'
还有我网站的文件系统
repo
project
...
wsgi
static
wsgi.py
我找不到我的静态文件,如 css、js 和图片。我收到 404 错误页面。
在我的 settings django 我有
STATIC_ROOT = '/var/lib/openshift/*id*/app-root/repo/*project*/*app*'
STATIC_URL = '/static/'
我的文件系统是
- project
- app
- wsgi.py
- static # I also tried to move this folder in wsgi folder
- css
- base.css
- ...
我试图将 static 文件夹 移动到之前创建的 wsgi 文件夹。 我还尝试将 我的静态文件夹或 wsgi 文件夹移动到 openshift 的 data 文件夹中,但没有成功。
我关注了一些来自 Whosebug 的帮助帖子,但没有找到我的答案
- Static files on OpenShift Django
- Serving Django static files in OpenShift
你能帮我配置我的静态文件夹吗?
谢谢
在您的 settings.py 中确保您拥有:
import os
import sys
BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
STATICFILES_DIRS = (os.path.join(BASE_DIR, 'static_files'),
) # create static_files dir and place there your static
# files to be collected, as static is the destination
# directory of your local and other Django
# modules static files
STATIC_ROOT = os.path.join(BASE_DIR, 'static', )
STATIC_URL = 'http://yourdomain.com/static/'
完成后运行
./manage.py collectstatic
确保你有像这样的树
yourproject+
|
+-yourproject
| |
| +urls.py
| |
| +settings.py
| |
| +wsgi.py
|
+manage.py
|
+static_files
|
+static
您还需要确保您的 manage.py 修改为:
import os
import sys
if __name__ == "__main__":
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "yourproject.settings")
from django.core.management import execute_from_command_line
execute_from_command_line(sys.argv)
和wsgi.py成为
import os
from django.core.wsgi import get_wsgi_application
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "yourproject.settings")
application = get_wsgi_application()
在wsgi.py我必须有
sys.path.append(os.path.join(os.environ['OPENSHIFT_REPO_DIR']))
os.environ['DJANGO_SETTINGS_MODULE' ] = 'project.settings.app'
在我的 settings.py
STATIC_ROOT = os.path.join(os.getenv('OPENSHIFT_REPO_DIR'), 'wsgi/static', )
STATIC_URL = '/static/'
还有我网站的文件系统
repo
project
...
wsgi
static
wsgi.py