Skip to main content
 首页 » 编程设计

python之Django 静态文件不适用于 Heroku

2024年08月25日31wayfarer

我的 Django 应用程序在本地服务器上运行良好。但是,当我在 Heroku 上部署它时,静态文件没有被提供(出现 404 错误)。请帮忙!

from django.conf.urls import patterns, include, url 
from django.contrib import admin 
from django.conf.urls.static import static 
from django.conf import settings 
 
urlpatterns = patterns('', 
       url(r'^$', 'product.views.home', name='home'), 
       url(r'^admin/', include(admin.site.urls)), 
 
   ) 
if settings.DEBUG: 
       urlpatterns += static(settings.STATIC_URL,document_root=settings.STATIC_ROOT) 
       urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT) 

静态文件设置:

  TEMPLATE_DIRS = ( 
      os.path.join(BASE_DIR, 'templates'), 
  ) 
 
  STATIC_URL = '/static/' 
 
  MEDIA_URL = '/media/' 
 
  MEDIA_ROOT = os.path.join(BASE_DIR, "static", "media") 
 
  STATIC_ROOT = os.path.join(BASE_DIR, "static", "static_root") 
 
  STATICFILES_DIRS = ( 
      os.path.join(BASE_DIR, "static", "static_dirs"), 
  ) 

WSGI 文件 -

  import os 
  os.environ.setdefault("DJANGO_SETTINGS_MODULE", "acton.settings") 
 
  from django.core.wsgi import get_wsgi_application 
  application = get_wsgi_application() 
 
  try: 
      from dj_static import Cling 
      application = Cling(get_wsgi_application()) 
 
  except: 
      pass 

请您参考如下方法:


这是我在 Heroku 上部署静态文件的设置。

希望对您有所帮助:

import os
BASE_DIR = os.path.dirname(os.path.abspath(file))
STATIC_ROOT = 'staticfiles'
STATIC_URL ='/static/'
MEDIA_ROOT = os.path.join(PROJECT_PATH, "media")
MEDIA_URL = "/media/"
STATICFILES_DIRS = (
os.path.join(BASE_DIR, 'static'),
)