Stati c файлы не могут быть применены в Django - PullRequest
0 голосов
/ 05 февраля 2020

Я новичок в Django и вижу курс на YouTube. Я пытаюсь включить файлы начальной загрузки \ css в шаблон HTML, и я создал файл stati c в приложение, как на фотографии. Также я проверил файл (второй \ urls.py) и в нем код

'''

STATIC_URL = '/static/'

INSTALLED_APPS = [
    'accounts',
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
]
''' 

И в логине. html есть эта ссылка

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

Я применил другой способ, как добавление этого second \ setting.py

STATICFILES_DIRS = [
    os.path.join(BASE_DIR,"accounts/static"),
    'accounts/static/'
]

А это мой файл urls.py

from django.contrib import admin
from django.urls import path, include
from django.conf.urls.static import static
from django.conf import settings


urlpatterns = [   
    path('admin/', admin.site.urls),
] + static(settings.STATIC_URL, document_root=settings.STATIC_ROOT)

В терминале есть предупреждение, но я думаю, что это не влияет

WARNINGS:
?: (2_0.W001) Your URL pattern '^account/' has a route that contains '(?P<', begins with a '^', or ends with a '$'. This was likely an
 oversight when migrating to django.urls.path().

enter image description here

1 Ответ

0 голосов
/ 05 февраля 2020

ОБНОВЛЕНИЕ: После просмотра кода вашего приложения я обнаружил проблему.

Вы должны поместить этот код

+ static(settings.STATIC_URL, document_root=settings.STATIC_ROOT)

в основной файл urls.py, в вашем случае это second/urls.py.

И убедитесь, что у вас есть этот код

STATIC_ROOT = os.path.join(BASE_DIR, 'static')
STATIC_URL = '/static/'
STATICFILES_DIRS = [
    os.path.join(BASE_DIR, 'name_of_the_root_directory/static'),
]

в вашем settings.py файле


Запускали ли вы команду collectstatic? python manage.py collectstatic.

Возможно, попробуйте изменить это в вашем urls.py файле

urlpatterns = [
    url(r'^$', views.home),

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

На это

urlpatterns = [
    url(r'^$', views.home),

] + static(settings.STATIC_URL, document_root=settings.STATIC_ROOT)

Это моя конфигурация в settings.py

STATIC_ROOT = os.path.join(BASE_DIR, 'static')
STATIC_URL = '/static/'
STATICFILES_DIRS = [
    os.path.join(BASE_DIR, 'name_of_the_root_directory/static'),
]

А это мой urls.py файл

from django.contrib import admin
from django.urls import path, include
from django.conf.urls.static import static
from django.conf import settings


urlpatterns = [   
    path('admin/', admin.site.urls),
] + static(settings.STATIC_URL, document_root=settings.STATIC_ROOT)

Если вы последуете моему примеру, вы должны запустить команду collectstatic из окна терминала

...