мой шаблон поврежден и не может получить файлы c - PullRequest
0 голосов
/ 08 марта 2020

мой шаблон не работает и не может получить файлы c, но я все сделал. моя папка stati c находится в каталоге Base, но когда я пытаюсь получить доступ к файлам stati c, например, CSS или js, я получаю сообщение об ошибке «файл не найден» и шаблон поврежден. Дерево моего файла для проекта

Это изображение моей папки и дерева проекта

Настройки для Stati c и медиа.

STATIC_URL = '/temfiles/'
MEDIA_URL = '/mediafiles/'
STATIC_ROOT = os.path.join(BASE_DIR, 'static')
MEDIA_ROOT = os.path.join(BASE_DIR, 'static/uploads/')
X_FRAME_OPTIONS = 'SAMEORIGIN'

файл URL моего проекта

urlpatterns = [
    path('admin/', admin.site.urls),
    path('', include('blog.urls')),
    path('froala_editor/', include('froala_editor.urls'))

]
if settings.DEBUG:
    urlpatterns += static(settings.MEDIA_URL,
                      document_root=settings.MEDIA_ROOT)

файл URL моего приложения

urlpatterns = [
    path('', views.index, name = 'index'),
    path('<slug:slug>/', views.post_detail, name='Post Detail')
]+ static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)

файл моих просмотров

def index(request):
    Post_list = BlogPost.objects.all()
    template_name = 'front/index.html'
    return render(request, template_name,{"Post_list":Post_list})



def post_detail(request):
    return render(request, 'front/post_detail.html')

мой базовый шаблон CSS пример

   {% load static %}
  <link rel="stylesheet" type="text/css" href="{% static 
  'front/css/style.css' %}">

Stati c Изображение дерева каталогов

stati c дерево каталогов с открытыми папками

просмотр браузера изображение терминала

стиль CSS URL в браузере

МОЙ urls.py для stati c и медиа root

Ответы [ 2 ]

0 голосов
/ 09 марта 2020

это не сработало, потому что когда Django с помощью DEBUG он просматривает stati c файлы в папке приложения, поэтому после выключения отладки он получит все из каталога Base, в котором записан путь к файлам stati c , поэтому в отладке вы должны собрать stati c в папке приложения, и после этого вы должны использовать команду collect stati c, и терминал Django исправит это перед загрузкой в ​​глобальный

0 голосов
/ 08 марта 2020

Вам необходимо добавить шаблоны URL времени отладки для stati c и media:

urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
urlpatterns += static(settings.STATIC_URL, document_root=settings.STATIC_ROOT)

https://docs.djangoproject.com/en/3.0/howto/static-files/#serving -stati c -files-while-development

...