Python 使用Django的Openshift上的静态文件
我找不到像css、js和picture这样的静态文件。我得到404错误页面 在my设置中,django我有Python 使用Django的Openshift上的静态文件,python,django,http-status-code-404,openshift,wsgi,Python,Django,Http Status Code 404,Openshift,Wsgi,我找不到像css、js和picture这样的静态文件。我得到404错误页面 在my设置中,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
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
- ...
我试图移动之前创建的wsgi文件夹中的静态文件夹。
我还尝试移动openshift的data文件夹中的我的静态文件夹或wsgi文件夹,但没有成功
我跟随Stackoverflow的几个帮助帖子,却没有找到我的答案
谢谢您的设置。请确保您有:
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
在您的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()
您还需要确保将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\u REPO\u DIR']))
os.environ['DJANGO\u SETTINGS\u MODULE']='project.SETTINGS.app'
在mysettings.py中
STATIC\u ROOT=os.path.join(os.getenv('OPENSHIFT\u REPO\u DIR'),'wsgi/STATIC',)
静态URL='/STATIC/'
还有我网站的文件系统
回购
项目
...
wsgi
静止的
wsgi.py
在wsgi.py中,我必须
sys.path.append(os.path.join(os.environ['OPENSHIFT\u REPO\u DIR']))
os.environ['DJANGO\u SETTINGS\u MODULE']='project.SETTINGS.app'
在mysettings.py中
STATIC\u ROOT=os.path.join(os.getenv('OPENSHIFT\u REPO\u DIR'),'wsgi/STATIC',)
静态URL='/STATIC/'
还有我网站的文件系统
回购
项目
...
wsgi
静止的
wsgi.py
我尝试了你的帖子@dmitryro,但没有解决我的问题请更新你的wsgi.py和manage.py,看看你收到了什么具体的错误消息,如果我尝试了你的帖子@dmitryro,但没有解决我的问题请更新你的wsgi.py和manage.py,看看你收到了什么具体的错误消息,如果amyMy wsgi.py是好的。如果静态文件夹已满,我不必使用/manage.py collectstatic
?您必须使用它,因为静态文件夹是获取文件的地方,而不是最初放置文件的地方。Django收集操作系统中所有已知位置的文件并将其放入static.STATICFILES_FINDERS=['Django.contrib.STATICFILES.FINDERS.FileSystemFinder','Django.contrib.STATICFILES.FINDERS.AppDirectoriesFinder',]#Django使用它来检查静态文件并将其设置为静态文件_ROOTcollectstatic确保您的静态文件是最新的,并且Django可以访问这些文件。谢谢@dmitryro,但即使我启动命令,我也无法访问静态文件。我的wsgi.py很好。如果静态文件夹已满,我不必使用/manage.py collectstatic
?您必须使用它,因为静态文件夹是获取文件的地方,而不是最初放置文件的地方。Django收集操作系统中所有已知位置的文件并将其放入static.STATICFILES_FINDERS=['Django.contrib.STATICFILES.FINDERS.FileSystemFinder','Django.contrib.STATICFILES.FINDERS.AppDirectoriesFinder',]#Django使用它来检查静态文件并将它们设置为静态文件_ROOTcollectstatic确保您的静态文件是最新的,并且Django可以访问这些文件。谢谢@dmitryro,但是即使我启动命令,我也无法访问静态文件。我可以在.htaccess中写些什么吗?静态文件夹的apache配置是什么?这个位置在apache中是固定的?我可以在.htaccess中写一些东西吗?静态文件夹的apache配置是什么?这个位置在apache中是固定的吗?