加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Python > 正文

如果启用调试,Django静态文件将停止工作

发布时间:2020-12-20 13:01:02 所属栏目:Python 来源:网络整理
导读:urlpatterns = patterns('',# Examples: url(r'^$','core.views.homepage',name='homepage'),url(r'^static/(?Ppath.*)$','django.views.static.serve',{'document_root': settings.STATIC_ROOT}),) 那是我的urls.py 如果我禁用DEBUG,静态文件可以正常工作,
urlpatterns = patterns('',# Examples:
    url(r'^$','core.views.homepage',name='homepage'),url(r'^static/(?P<path>.*)$','django.views.static.serve',{'document_root': settings.STATIC_ROOT}),)

那是我的urls.py

如果我禁用DEBUG,静态文件可以正常工作,如果我重新打开它,则不起作用.

我的部分设置

STATIC_ROOT = os.path.join(PROJECT_ROOT,'static')

# URL prefix for static files.
# Example: "http://media.lawrence.com/static/"
STATIC_URL = '/static/'

# URL prefix for admin static files -- CSS,JavaScript and images.
# Make sure to use a trailing slash.
# Examples: "http://foo.com/static/admin/","/static/admin/".
ADMIN_MEDIA_PREFIX = '/static/admin/'

# Additional locations of static files
STATICFILES_DIRS = (

    # Put strings here,like "/home/html/static" or "C:/www/django/static".
    # Always use forward slashes,even on Windows.
    # Don't forget to use absolute paths,not relative paths.
)

# List of finder classes that know how to find static files in
# various locations.
STATICFILES_FINDERS = (
    'django.contrib.staticfiles.finders.FileSystemFinder','django.contrib.staticfiles.finders.AppDirectoriesFinder',#    'django.contrib.staticfiles.finders.DefaultStorageFinder',)

对我来说真的很奇怪,任何人都可以帮忙吗?

解决方法

不,Django不提供STATIC_ROOT.在生产(调试关闭)中,您的Web服务器应该直接为此目录提供服务.在开发(debug on)中,不管怎样,你不应该有这个目录或任何东西.

让我再说一遍强调.您永远不应该直接在STATIC_ROOT中保存任何资产.此目录仅用于collectstatic管理命令的输出.项目中的所有资产都应该保存在它所属的特定应用程序的静态目录中.

当然,现在,您通常拥有与单个应用程序无直接关系的资产,而是整个项目的整个项目.对于此方案,您在项目中创建一个单独的目录,并将所有公共资源放在那里.然后,将此目录添加到STATICFILES_DIRS设置.

在开发中,Django将为该目录中的任何内容提供服务,而在生产中,collectstatic管理命令会将该目录中的资产拉入STATIC_ROOT.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读