在 heroku 中托管时的 django 静态文件
django static files when hosting in heroku
我的静态文件夹中有 excel 个文件,我从中读取这些文件以获取一些数据,但是当我部署我的项目时这些文件不在那里
这些是我配置静态文件的设置
STATIC_URL = '/static/'
STATIC_ROOT = BASE_DIR / 'staticfiles'
STATICFILES_DIRS = [
BASE_DIR / 'static'
]
STATICFILES_STORAGE = 'whitenoise.storage.CompressedManifestStaticFilesStorage'
我是这样称呼他们的
from django.conf import settings
from django.templatetags.static import static
from django.contrib.staticfiles.storage import staticfiles_storage
from django.contrib.staticfiles.finders import find
def get_static(path):
if settings.DEBUG:
return find(path)
else:
return static(path)
def sport_news(request):
path = 'excel\sport_update.xlsx'
excel_data = excel(get_static(path))
return render(request, 'news/news.html', {"excel_data":excel_data, 'type':'Sport News'})
请检查你settings.py
但首先
pip install whitenoise
在中间件中
'whitenoise.middleware.WhiteNoiseMiddleware',
在底部
STATICFILES_STORAGE = 'whitenoise.django.GzipManifestStaticFilesStorage'
那么你的主要项目urls.py
if settings.DEBUG:
urlpatterns += static(settings.STATIC_URL, document_root = settings.STATIC_ROOT)
urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
并且请确保您的 settings.py
中确实有一个静态 cdn 文件夹
然后 运行 python manage.py collectstatic
如果您完成了上述所有操作但仍然没有文件,请确保该文件位于静态 cdn 文件夹中,如果没有,请在完成所有步骤后再次推送代码,您就可以开始了
如果还是不行告诉我
我的静态文件夹中有 excel 个文件,我从中读取这些文件以获取一些数据,但是当我部署我的项目时这些文件不在那里
这些是我配置静态文件的设置
STATIC_URL = '/static/'
STATIC_ROOT = BASE_DIR / 'staticfiles'
STATICFILES_DIRS = [
BASE_DIR / 'static'
]
STATICFILES_STORAGE = 'whitenoise.storage.CompressedManifestStaticFilesStorage'
我是这样称呼他们的
from django.conf import settings
from django.templatetags.static import static
from django.contrib.staticfiles.storage import staticfiles_storage
from django.contrib.staticfiles.finders import find
def get_static(path):
if settings.DEBUG:
return find(path)
else:
return static(path)
def sport_news(request):
path = 'excel\sport_update.xlsx'
excel_data = excel(get_static(path))
return render(request, 'news/news.html', {"excel_data":excel_data, 'type':'Sport News'})
请检查你settings.py 但首先
pip install whitenoise
在中间件中
'whitenoise.middleware.WhiteNoiseMiddleware',
在底部
STATICFILES_STORAGE = 'whitenoise.django.GzipManifestStaticFilesStorage'
那么你的主要项目urls.py
if settings.DEBUG:
urlpatterns += static(settings.STATIC_URL, document_root = settings.STATIC_ROOT)
urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
并且请确保您的 settings.py
中确实有一个静态 cdn 文件夹然后 运行 python manage.py collectstatic
如果您完成了上述所有操作但仍然没有文件,请确保该文件位于静态 cdn 文件夹中,如果没有,请在完成所有步骤后再次推送代码,您就可以开始了
如果还是不行告诉我