gpt4 book ai didi

如果打开调试,Django 静态文件将停止工作

转载 作者:行者123 更新时间:2023-12-01 06:59:32 25 4
gpt4 key购买 nike

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',
)

我真的很奇怪,有人可以帮忙吗?

最佳答案

不,STATIC_ROOT从来没有被 Django 服务过。在生产中(调试关闭),预计您的 Web 服务器将直接为该目录提供服务。在开发中(调试),无论如何,你不应该有这个目录或任何东西。

为了强调,让我再说一遍。您不应该直接将任何 Assets 保存在 STATIC_ROOT 中.此目录仅用于 collectstatic 的输出。管理命令。您项目中的所有 Assets 都应该保存在 static 中。它所属的特定应用程序的目录。

现在,当然,您通常会拥有与单个应用程序不直接相关的 Assets ,而是与整个项目相关的 Assets 。对于这种情况,您在项目中创建一个单独的目录并将所有常见 Assets 放置在其中。然后将此目录添加到 STATICFILES_DIRS环境。

在开发中,Django 将提供该目录中的任何内容,而在生产中,collectstatic管理命令将从该目录中提取 Assets 到 STATIC_ROOT .

关于如果打开调试,Django 静态文件将停止工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7986076/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com