我遇到了一个问题,即使经过一个晚上的尝试,我还没有能够解决。
对于我的项目,我有一个静态目录,并且我已经在其中包含了“登录”页面的css文件。然而,当我尝试加载网页时,我收到404错误。
当我尝试使用'findstatic'或'collectstatic'命令查找文件时,文件会被删除。就像'静态'目录对django来说是不可见的。我甚至直接将'Login'文件夹复制到'static_root',但即使这样,程序也被Django无法找到文件。 有谁知道我做错了什么?
我的项目文件夹如下所示:
* MPS (main folder)
* Scraper (app)
* Database (app)
* Templates
* Static_root
* Static
* Login
* css
* style.css
我的settings.py配置如下:
STATIC_URL = 'static/'
STATICFILES_DIRS = (
os.path.join(BASE_DIR, 'static'),
)
STATIC_ROOT = os.path.join(BASE_DIR, 'static_root/')
我使用以下代码调用模板中的静态文件:
{% load staticfiles %}
(...)
<link rel="stylesheet" href="{% static 'login/css/style.css' %}">
答案 0 :(得分:1)
您的项目文件夹结构与大多数Django项目略有不同。传统上它看起来更像是这样:
myproject/
urls.py
wsgi.py
settings.py
myapp/
static/
myapp/
css/
style.css
js/
index.js
manage.py
请注意,myapp
的app静态文件位于与app文件夹相同的子文件夹中。这可以轻松命名文件,因为您可以在docs中阅读更多信息。
现在我们可以将我们的静态文件直接放在my_app / static /中(而不是创建另一个my_app子目录),但这实际上是个坏主意。 Django将使用它找到的名称匹配的第一个静态文件,如果在不同的应用程序中有一个具有相同名称的静态文件,Django将无法区分它们。我们需要能够将Django指向正确的,并且确保这一点的最简单方法是通过命名它们。也就是说,将这些静态文件放在为应用程序本身命名的另一个目录中。