【问题标题】:Django runserver not serving static files in developmentDjango runserver 在开发中不提供静态文件
【发布时间】:2013-12-22 07:27:48
【问题描述】:

我正在使用带有runserver 的Django 进行开发。当我部署到我的生产服务器时,我可以看到我的所有静态文件,但在我的本地计算机上看不到。

我设置了collectstatic,并设置了DEBUG = True

我在网上找到了很多不同的意见,最突出的是STATICFILES_DIRS,但这对我不起作用。

如何设置它,以便在我的开发环境中可以看到静态文件,并且当我将文件上传到服务器时,我不需要进行任何更改以使生产环境正常工作。

编辑 - 我的urls.py 文件:

from django.conf.urls import patterns, include, url
from django.conf.urls.static import static
import newsflashes
import settings

from django.contrib import admin
admin.autodiscover()

urlpatterns = patterns('',
    url(r'^admin/doc/', include('django.contrib.admindocs.urls')),
    url(r'^admin/', include(admin.site.urls)),
    url(r'^', include('newsflashes.urls')),
) + static(settings.STATIC_URL, document_root=settings.STATIC_ROOT)

编辑 - 文件结构:

我有两个目录,静态和动态。 static里面是静态文件,动态目录里面是django应用。

编辑 - 设置:

我的相关设置如下

STATIC_ROOT = os.path.join(BASE_DIR, '..', 'static')
STATIC_URL = '/static/'
STATICFILES_DIRS = ()

【问题讨论】:

  • 你有followed the documentation 并在你的urls.py 中添加了适当的行
  • 是的,我在问题中添加了 urls 文件
  • 您应该告诉我们您的设置(STATIC_ROOT、STATIC_URL、STATICFILES_DIRS)和静态文件位置
  • 添加到上述问题中。我应该添加其他内容吗?

标签: django django-staticfiles static-files


【解决方案1】:

我设法修复它。

我在名为 static 的项目文件夹中创建了另一个名为 static 的目录,并将我的静态文件复制到那里。

然后我补充说:

from django.contrib.staticfiles.urls import staticfiles_urlpatterns
import settings
if settings.DEBUG:
    urlpatterns += staticfiles_urlpatterns()

致我的urls.py

STATICFILES_DIRS = (os.path.join(BASE_DIR, 'static'),)

致我的settings.py

然后,当我部署时,我执行manage.py collectstatic,由于 Apache 配置正确,一切都会正常工作!

基于http://dlo.me/archives/2013/01/14/how-to-serve-static-files-django/

谢谢大家。

【讨论】:

  • 澄清一下,在settings.py中确保DEBUG设置为true,然后在urls.py中添加上面的urls.py代码。
  • 我只需将 STATICFILES_DIRS 指向我的(源)静态文件目录。之后,运行 collectstatic 收集文件,然后 runserver 将为它们提供服务。感谢您的提示:)
  • 这已经默认包含在django.contrib.staticfiles.urls
【解决方案2】:

即使 DEBUG 设置为 False,我通常也会运行 python manage.py runserver --insecure 来强制使用 staticfiles 应用提供静态文件。

这是他们文档的链接。 https://docs.djangoproject.com/en/3.2/ref/contrib/staticfiles/#cmdoption-runserver-insecure

【讨论】:

    猜你喜欢
    • 2012-06-04
    • 2014-03-13
    • 1970-01-01
    • 1970-01-01
    • 2016-10-13
    • 2013-04-16
    • 2012-01-26
    • 2012-03-25
    • 2015-08-06
    相关资源
    最近更新 更多