我在安装任何应用程序时遇到问题。每次我尝试,它都找不到资源。目前,我正在尝试在我的Django应用程序中安装uncapture。
我的应用程序名为RealEstate。
static的部署目录:project_name/app_name/static/
我使用collectstatic将新文件或修订文件复制到部署目录的目录:项目名称/应用程序名称/静态更改/
在static中,我有一个包含不同子文件夹的管理文件夹:static/admin/css、static/admin/fonts、static/amp/img、static/admin/js、static/amman/node_modules
settings.py:
BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
DEBUG = TRUE
STATIC_ROOT = os.path.join(BASE_DIR, 'RealEstate/static')
STATIC_URL = '/static/'
STATICFILES_DIRS = [
os.path.join(BASE_DIR, "RealEstate/static_changes/"),
]
STATICFILES_FINDERS = [
'django.contrib.staticfiles.finders.FileSystemFinder',
'django.contrib.staticfiles.finders.AppDirectoriesFinder',
]
我已经运行了uncauct的安装,它创建了一个package-lock.json文件和一个node_modules文件夹,其中包含未获取的资源,这两个文件都放在我的项目的根目录中:
$ npm install --save uncaught
由于我使用static_changes将任何新的或修改过的资源复制到部署目录static中,因此我已将项目根目录中的node_modules文件夹复制到我的app_name/static_changes/admin文件夹中,并运行collectstatic
python3.7 manage.py collectstatic
它将文件复制到app_name/static。但当我打开浏览器时,文件永远找不到,我在运行控制台中收到以下消息:
Not Found: /admin/node_modules/uncaught/lib/index.js
[26/Feb/2019 22:57:47] "GET /admin/node_modules/uncaught/lib/index.js
HTTP/1.1" 404 14044
我已经尝试将admin/nod_module移动到目录结构的每一部分,并对其运行collectstatic,但应用程序仍然找不到资源。
请帮忙。为什么我尝试安装的任何应用程序都看不到资源,即使它们存在于project_name/app_name/static/admin中,并且我使用collectstatic将其获取到那里?
确保base.html中的URL是正确的,如下所示:
<script src="{% static "admin/node_modules/uncaught/lib/index.js" %}"></script>
在macOS中,我遵循了以下步骤:
https://docs.djangoproject.com/en/3.1/howto/static-files/
结果是这样的:
设置.py
BASE_DIR = Path(__file__).resolve().parent.parent ---> Didn't touch this specific line
STATIC_URL = '/static/'
STATICFILES_DIRS = [
BASE_DIR / "static"
]
main.html
{% load static %}
<link rel="stylesheet" type="text/css" href="{% static '/css/main.css' %}">