首页 > 解决方案 > 我们可以在 django 设置中使用多个 static_url 或 static_root 吗?

问题描述

我想在文件夹中添加特定资产,并且应该能够使用 /assets/css/main.css 之类的 url 访问我能够使用 /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/'

标签: djangostaticdjango-urls

解决方案


为什么不为所有静态文件创建一个静态文件夹?如果您正在使用多个应用程序,您需要做的就是在主静态文件夹中创建目录。

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

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">

推荐阅读