Django任何已安装的应用程序都找不到静态文件

时间:2019-02-26 16:19:49

标签: django static-files

Django和Python,MacOS,PyCharm的最新版本

我无法安装任何应用程序。每次尝试,它都找不到资源。目前,我正在尝试在Django应用中安装未捕获的文件。

我的应用程序的名称为RealEstate。

静态部署目录:project_name / app_name / static /

我用于将新文件或经修订的文件复制到具有collectstatic的Deployment Directory的目录: project_name / app_name / static_changes /

在static里面,我有一个带有不同子文件夹的admin文件夹: 静态/ admin / css,静态/ admin /字体,静态/ admin / img,静态/ admin / js,静态/ admin / 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',
]

我已经运行了未捕获的安装程序,该安装程序创建了一个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 / node_modules移至目录结构的每个部分并对其运行collectstatic,但该应用程序仍然找不到资源。

请帮助。为什么我尝试安装的任何应用程序都看不到资源,即使它们存在于project_name / app_name / static / admin中,并且我使用collectstatic还是可以找到它?

2 个答案:

答案 0 :(得分:0)

确保base.html中的URL正确,例如:

<script src="{% static "admin/node_modules/uncaught/lib/index.js" %}"></script>

答案 1 :(得分:0)

在 macOS 中,我遵循了以下步骤:

https://docs.djangoproject.com/en/3.1/howto/static-files/

就这样结束了:

settings.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' %}">