【问题标题】:Django: Static Files not displayed on deployment serverDjango:静态文件未显示在部署服务器上
【发布时间】:2016-10-21 19:44:54
【问题描述】:

我无法让我的网站正确加载静态文件。

关于静态文件的settings.py文件如下:

# Static files
STATIC_URL = '/static/'
STATIC_ROOT = '/var/www/str8red.com/static/'
STATICFILES_FINDERS = (
    'django.contrib.staticfiles.finders.FileSystemFinder',
    'django.contrib.staticfiles.finders.AppDirectoriesFinder',
)

当我运行以下命令时:

python manage.py collectstatic

我得到以下结果:

1858 static files copied to '/var/www/str8red.com/static'

当我检查目录时,一切似乎都正常工作。

然后我去“https://str8red.com/”在线查看我的网站,但所有 CSS 或图像都不起作用。我在 chrome 开发人员模式下看到的示例错误如下:

GET https://str8red.com/static/str8RED.png 404 (Not Found)

正在使用以下代码抓取文件:

{% load staticfiles %}
<nav class="navbar navbar-inverse navbar-fixed-top">
  <div class="container">
    <div class="navbar-header">
      <a class="navbar-brand" href="{% url 'index' %}">
        <img src="{% static 'str8RED.png' %}" width="97" height="22" alt="str8RED.com" />
      </a>

网址文件:

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

urlpatterns = [
    url(r'', include('meta.urls')),
    url(r'^straightred/', include('straightred.urls')),
    url(r'^admin/', include(admin.site.urls)),
    url(r'^chaining/', include('smart_selects.urls')),
    url(r'^tinymce/', include('tinymce.urls')),
    url(r'^accounts/', include('allauth.urls')),
]

# Get Django to serve media files in debug mode.
if settings.DEBUG:
    urlpatterns += [url(r'^resources/(?P<path>.*)$', serve, {'document_root': settings.MEDIA_ROOT})]

非常感谢任何帮助,非常感谢,艾伦。

【问题讨论】:

  • 你能发布你的主要 urls.py
  • 已添加,如果您愿意聊天,请告诉我。非常感谢,艾伦。

标签: python django


【解决方案1】:

您需要在 urls.py 中添加静态 url 规则,以便在获取任何静态 url 时告诉 Django 提供静态文件。

if not settings.DEBUG:
    urlpatterns += [
        url(r'^media/(?P<path>.*)$', 'django.views.static.serve',
            {'document_root': settings.MEDIA_ROOT, 'show_indexes': True}),
        url(r'^static/(?P<path>.*)$', 'django.views.static.serve',
            {'document_root': settings.STATIC_ROOT}),
    ]

【讨论】:

  • 至少我现在遇到了一个新错误 :) 内部服务器错误:/NameError at / name 'patterns' is not defined 网站显示 500 内部服务器错误,有什么想法吗?我会去谷歌,谢谢你到目前为止的帮助。
  • @AlanTingey Sorri 这是 urlpatterns 而不是模式,我修复了它。
  • 公平地说,这是我应该发现的。下一个错误,不是我的一天大声笑内部服务器错误:/'list'对象的/ TypeError不可调用
  • @AlanTingey 已修复,抱歉,现在 url 模式是列表,所以我更改了(对于 [
  • 在最后一个 ] 之前需要另一个 )。即使在此之后我得到以下信息:内部服务器错误:/ NameError at / name 'urlpattern' is not defined
猜你喜欢
  • 2018-03-29
  • 1970-01-01
  • 2015-12-16
  • 2015-02-20
  • 1970-01-01
  • 2018-10-11
  • 2018-07-10
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多