Django findstatic:找不到匹配的文件
Django findstatic : No matching file found
不久前,我试图在 Django 中使用 "collectstatic" 来提供我的静态文件,但惨遭失败。现在我终于尝试让我的静态文件在我的开发环境中正确服务。我不知道哪里出了问题。
当我运行python manage.py findstatic images/add.png
控制台returns:
base path: C:\Projects\AlmondKing\AlmondKing
static files dirs: C:\Projects\AlmondKing\AlmondKing\static
No matching file found for 'images/add.png'.
目录路径正确,但仍然找不到我的文件。我尝试了许多不同的设置配置但无济于事。谁能发现我的问题?以下是我认为的所有相关设置:
BASE_DIR = os.path.abspath(os.path.dirname(__file__))
DEBUG = True
INSTALLED_APPS = (
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'AlmondKing.InventoryLogs',
'AlmondKing.FinancialLogs',
'AlmondKing.AKGenius',
)
STATIC_URL = '/static/'
STATIC_FILES_DIRS = (
os.path.join((BASE_DIR), "static")
)
print("base path:", BASE_DIR)
print("static files dirs:", STATIC_FILES_DIRS)
编辑:我找到了 findstatic --verbosity 2 command
并且正在搜索的唯一目录是:C:\Users\Adam\Envs\AlmondKing\lib\site-packages\django\contrib\admin\static
显然它只是在我的虚拟环境中查找,而不是在我的项目目录中查找。这是正常的 Django 行为吗?
设置是STATICFILES_DIRS
,不是STATIC_FILES_DIRS
。
您在设置中还遗漏了一个逗号。如果没有逗号,它将被视为字符串而不是元组。
应该是:
STATICFILES_DIRS = (
os.path.join(BASE_DIR, "static"),
)
终于来了! Referring here,我了解到静态文件目录必须位于单个应用程序的目录中。我在项目根目录中有静态目录。我把它移到一个应用程序目录中,它现在可以工作了。
整个项目将使用这些相同的静态文件。如果有人知道,我是否需要在每个应用程序的目录中都有它们的副本,或者我项目的所有应用程序都可以共享一个静态目录吗?谢谢!
不久前,我试图在 Django 中使用 "collectstatic" 来提供我的静态文件,但惨遭失败。现在我终于尝试让我的静态文件在我的开发环境中正确服务。我不知道哪里出了问题。
当我运行python manage.py findstatic images/add.png
控制台returns:
base path: C:\Projects\AlmondKing\AlmondKing
static files dirs: C:\Projects\AlmondKing\AlmondKing\static
No matching file found for 'images/add.png'.
目录路径正确,但仍然找不到我的文件。我尝试了许多不同的设置配置但无济于事。谁能发现我的问题?以下是我认为的所有相关设置:
BASE_DIR = os.path.abspath(os.path.dirname(__file__))
DEBUG = True
INSTALLED_APPS = (
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'AlmondKing.InventoryLogs',
'AlmondKing.FinancialLogs',
'AlmondKing.AKGenius',
)
STATIC_URL = '/static/'
STATIC_FILES_DIRS = (
os.path.join((BASE_DIR), "static")
)
print("base path:", BASE_DIR)
print("static files dirs:", STATIC_FILES_DIRS)
编辑:我找到了 findstatic --verbosity 2 command
并且正在搜索的唯一目录是:C:\Users\Adam\Envs\AlmondKing\lib\site-packages\django\contrib\admin\static
显然它只是在我的虚拟环境中查找,而不是在我的项目目录中查找。这是正常的 Django 行为吗?
设置是STATICFILES_DIRS
,不是STATIC_FILES_DIRS
。
您在设置中还遗漏了一个逗号。如果没有逗号,它将被视为字符串而不是元组。
应该是:
STATICFILES_DIRS = (
os.path.join(BASE_DIR, "static"),
)
终于来了! Referring here,我了解到静态文件目录必须位于单个应用程序的目录中。我在项目根目录中有静态目录。我把它移到一个应用程序目录中,它现在可以工作了。
整个项目将使用这些相同的静态文件。如果有人知道,我是否需要在每个应用程序的目录中都有它们的副本,或者我项目的所有应用程序都可以共享一个静态目录吗?谢谢!