我们可以在Django设置中使用多个static_url或static_root吗?

时间:2019-04-04 12:29:08

标签: django static django-urls

我想在文件夹中添加特定资产,并且应该能够使用/assets/css/main.css之类的网址进行访问 能够使用/static/css/main.css做到这一点,但不能使用/assets/css/main.css

对于django,我也需要做些什么更改才能接受/ assets /路径。

默认-

STATIC_ROOT = 'app/static'
STATIC_URL = '/static/'

用于访问静态和资产文件夹-

STATIC_ROOT = 'app/static'
STATIC_URL = '/static/'

ASSET_ROOT = 'app/assets'
ASSET_URL = '/assets/'

我也尝试过-

STATIC_ROOT = 'app/static'
STATIC_URL = '/static/'

ASSET_ROOT = os.path.join(BASE_DIR, 'app/assets')
ASSET_URL = '/assets/'

2 个答案:

答案 0 :(得分:0)

如果最后所有文件都位于“ app”文件夹中,据我了解,您的根目录将是“ app”文件夹,则可以创建其他变量,并使用.setting import X ...

答案 1 :(得分:0)

为什么所有静态文件都没有一个静态文件夹?而且,如果您要使用多个应用程序,则只需在主静态文件夹中创建目录。

现在查看问题的详细信息,建议您在主静态文件中创建两个子目录。像这样:

static/
    main/
      css/
         main.css
    assets/
      css/
         main.css

然后在settings.py文件中执行以下操作:

STATIC_ROOT = os.path.join(BASE_DIR, 'app/static')
STATIC_URL = '/static/'

现在要访问模板中的静态文件,您可以执行以下操作:

{% load static %}

<link href="{% static "assets/css/main.css" %}" rel="stylesheet">
<link href="{% static "main/css/main.css" %}" rel="stylesheet">