部署到 Digital Ocean 中的 Django staticfiles 404

Django staticfiles 404 in Deploy to Digital Ocean

服务器启动于 Ubuntu 本地服务器上的 16.04.2 x64 所有工作都使用与仅在此处启动时相同的设置,找不到它们!

设置

STATIC_URL = '/static/'

STATICFILES_DIRS = [
    os.path.join(BASE_DIR, "static"),
    #'/var/www/static/',

]

STATIC_ROOT     = os.path.join(BASE_DIR, "static_cdn")
MEDIA_URL       = "/media/"
MEDIA_ROOT      = os.path.join(BASE_DIR, "media_cdn")

网址

from django.conf.urls import include, url
from django.contrib import admin
from django.conf import settings
from django.conf.urls.static import static

urlpatterns = [
    url(r'^admin/', admin.site.urls),
    url(r'^chart/', include("charts.urls", namespace='charts')),
    url(r'^comments/', include("comments.urls", namespace='comments')),
    url(r'^im/', include("messenger.urls", namespace='im')),
    url(r'^accounts/', include("accounts.urls", namespace='accounts')),
    url(r'^series/', include("serials.urls", namespace='series')),
    url(r'^', include("serials.urls", namespace='homeview')),




]+ static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
static(settings.STATIC_URL, document_root=settings.STATIC_ROOT)

在本地服务器上一切正常,但是当我在实时静态文件中启动它时找不到

> [29/Jul/2017 07:54:38] "GET /static/css/bootstrap.min.css HTTP/1.1"
> 404 102 [29/Jul/2017 07:54:38] "GET /static/js/bootstrap.min.js
> HTTP/1.1" 404 100 [29/Jul/2017 07:54:38] "GET
> /static/min_css/base.min.css HTTP/1.1" 404 101 [29/Jul/2017 07:54:38]
> "GET /static/js/Chart.min.js HTTP/1.1" 404 96 [29/Jul/2017 07:54:38]
> "GET /static/js/smooth-scroll.js HTTP/1.1" 404 100 [29/Jul/2017
> 07:54:38] "GET /static/js/script.js HTTP/1.1" 404 93 [29/Jul/2017
> 07:54:39] "GET /static/js/bootstrap.min.js HTTP/1.1" 404 100
> [29/Jul/2017 07:54:39] "GET /static/js/Chart.min.js HTTP/1.1" 404 96
> [29/Jul/2017 07:54:39] "GET /static/js/smooth-scroll.js HTTP/1.1" 404
> 100 [29/Jul/2017 07:54:39] "GET /static/js/script.js HTTP/1.1" 404 93

听起来你还没有 运行 python manage.py collectstatic。这会将您的静态文件复制到正确的位置。

如果这不起作用,请检查您的网络服务器配置。

你必须像这样为部署制作静态文件! 在您的设置中替换您的 staticfiles const,一切都会很棒!

STATIC_URL = '/static/'

STATICFILES_DIRS = [

    os.path.join(BASE_DIR, "static")

]

MEDIA_URL    = '/media/'

STATIC_ROOT = '../static/'

MEDIA_ROOT = '../media/'

如果它不起作用,请使用完整路径! 像这样:

STATIC_ROOT = '/var/www/static/',