Можем ли мы использовать несколько static_url или static_root в настройках django? - PullRequest
1 голос
/ 04 апреля 2019

Я хочу добавить определенные ресурсы в папку и должен иметь возможность доступа с помощью URL, например /assets/css/main.css. Я могу сделать это с помощью /static/css/main.css, но не с помощью / assets / css./main.css

Какие изменения мне нужно сделать, чтобы django тоже принял / assets / path.

По умолчанию -

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 голосов
/ 04 апреля 2019

Почему бы не иметь одну статическую папку для всех ваших статических файлов? И если у вас есть несколько приложений, с которыми вы работаете, все, что вам нужно сделать, это создать каталоги в вашей основной статической папке.

Теперь, посмотрев на детали вашего вопроса, я предлагаю вам создать два подкаталога внутри вашего основного статического файла. Примерно так:

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">
0 голосов
/ 04 апреля 2019

Если в конце все ваши файлы находятся в папке 'app', то, как я понял, ваша ROOT будет папкой 'app', вы можете создавать другие переменные и импортировать их из .setting import X ...

...