Django未将静态文件加载到资产文件中

时间:2019-09-05 12:49:07

标签: django templates django-templates

我最近开始了一个基本的django项目,我想加载一个已经制作好的默认模板。该模板有一个包含所有CSS,JS文件等的资产文件夹

此文件夹稍后在模板中调用,因此例如我可以拥有:

<base href="../">
    // And a lot of static files being called like this:
<link href="./assets/scrollbar/css/scrollbar.css" rel="stylesheet" type="text/css" />
<link href="./assets/somecss.css" rel="stylesheet" type="text/css" />
// And so on..

<script src="./assets/somejsfile.js" type="text/javascript"></script>

此问题是资产中没有文件被检索。我知道问题取决于我将资产文件夹放在哪里,但我不知道如何解决。我试图将其添加到项目结构的不同部分,但是它不起作用,因为我只会遇到很多这样的错误:

http://127.0.0.1:8000/assets/somecss.css net::ERR_ABORTED 404 (Not Found)

这是我的 settings.py

STATIC_URL = '/static/'

在此静态文件夹中,有一个基本的css文件,在尝试此操作之前,我已对其进行过测试。

这是我的项目的结构:

 //MAIN FOLDER
    migrations
    ASSETS
    templates -> INDEX.HTML (where the assets folder is called)
    views, forms etc

1 个答案:

答案 0 :(得分:1)

您是否已阅读documentation

建议使用static template tag 来使静态文件的文件系统位置独立于URL。使用此标记,您的URL必须这样定义:

{% load static %}
<link href="{% static 'assets/scrollbar/css/scrollbar.css' %}" 
      rel="stylesheet" type="text/css" />
<link href="{% static 'assets/somecss.css' %}"
      rel="stylesheet" type="text/css" />

您还需要定义设置STATICFILES_DIRS,因为看起来您的静态资产不在项目应用程序的默认位置内。