Django: присоединенный путь расположен вне компонента базового пути



Я использую Django 10, и я не знаю, почему после того, как я успешно собираю свои статические файлы, когда я пытаюсь запустить сервер в режиме развертывания (debug=False), это происходит со мной примерно так:



Когда я ищу статический файл, делая: python manage.py findstatic /static/mysite/js/javascript.js



django.core.exceptions.SuspiciousFileOperation: The joined path (/static/mysite/js/javascript.js) is located outside of the base path component (/home/xxxx/.venvs/mysite/local/lib/python2.7/site-packages/django/contrib/admin/static)



Я запускаю это с помощью виртуального env 'mysite'.



В settings.py :



STATIC_URL = '/static/'

STATIC_ROOT = os.path.join(BASE_DIR, "static") (i tried also just only 'static')

MEDIA_ROOT = BASE_DIR + '/mysite/media'

MEDIA_URL = '/media/'


Мой urls.py :



urlpatterns = [   
url(r'', include('mysite.urls')),
]

urlpatterns += staticfiles_urlpatterns()


Это ново для меня, я также делал уже сайт django и такого никогда не происходит ошибка. Почему не рассматривается мой путь STATIC_ROOT? С другой стороны, Коллекционирование прекрасно работает. И если я запускаю сервер с отладкой true, он работает как заклинание.

815   1  

1 ответ:

findstatic’позиционный аргумент s-это параметр, который вы передадите в static для отображения определенного статического файла в шаблоне. Ошибка, которую вы видите, заключается в том, что вы использовали абсолютный путь, а не параметр, который вы бы передали функции static в шаблоне. Вы уверены, что не имели в виду что-то вроде:

python manage.py findstatic mysite/js/javascript.js

Для файла, на который вы ссылаетесь с помощью

{% static 'mysite/js/javascript.js' %}

Или

python manage.py findstatic js/javascript.js

Для файла, на который вы ссылаетесь с помощью

{% static 'js/javascript.js' %}

Для вашего Ссылка:

usage: manage.py findstatic [-h] [--version] [-v {0,1,2,3}]
                            [--settings SETTINGS] [--pythonpath PYTHONPATH]
                            [--traceback] [--no-color] [--first]
                            staticfile [staticfile ...]

Finds the absolute paths for the given static file(s).

positional arguments:   staticfile

N. b., приложение Django staticfiles не предполагается использовать в производстве. В производственной среде предполагается использовать веб-сервер для обслуживания статических файлов на основе. например, для nginx вы бы включили такой блок:

location /static {
    root /path/to/django;
}

Для отладки статических файлов проверьте каталог STATIC_ROOT после запуска collectstatic и убедитесь, что файлы находятся там. Если это так, убедитесь, что ваш веб-сервер настроен на правильное обслуживание статических файлов. справочник.

Comments

    Ничего не найдено.