部署到 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/',
服务器启动于 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/',