'Static file doesn't exist and html-file doesn't work properly
output:
'static' in the STATICFILES_DIRS setting does not exist.
I've tried os.path.join(BASE_DIR, '/static'), but it is doesn't work. I didn't have this problem before adding new html-file and I didn't change static-folder. Setting.py
STATIC_URL = '/static/'
STATICFILES_DIRS = [
BASE_DIR / 'static'
]
In static-folder I have placed folder 'main' and css-file. base.html
I also have a problem with the file. It doesn't work correctly. Guess I didn't wire it right.
<a href="{% url 'make_vision' %}"><li><button class="btn btn-info"><i class="fas fa-plus-circle"></i>Добавить запись</button></li></a>
make_vision.html
{% extends 'main/base.html' %}
{% block title %}Добавление записей{% endblock %}
{% block content %}
<div class="features">
<h1>Форма по добавлению статьи</h1>
<form method="post">
<input type="text" placeholder="Название статьи" class="form-control"><br>
<input type="text" placeholder="Анонс статьи" class="form-control"><br>
<textarea class="form-control"><br>
<input type="date" class="form-control"><br>
<button class="btn btn-success" type="submit">Добавить статью</button>
</form>
</div>
{% endblock %}
urls.py
urlpatterns = [
path('', views.news_home, name='news_home'),
path('make_vision', views.make_vision, name="make_vision"),
]
views.py
def news_home(request):
news = Articles.objects.order_by('-data')[:2]
return render(request, 'news/news_home.html', {'news': news})
def make_vision(request):
return render(request, 'news/make_vision.html')
When I started the server, I got an error that this path does not exist.
Solution 1:[1]
Do this: settings.py:
STATICFILES_DIRS = [
os.path.join(BASE_DIR, "static"),
]
urls.py:
urlpatterns = [
path('', views.news_home, name='news_home'),
path('make_vision', views.make_vision, name="make_vision"),
]+ static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
In templates: make_vision.html:
{% extends 'main/base.html' %}
{% load static %}
{% block title %}?????????? ???????{% endblock %}
{% block content %}
<div class="features">
<h1>????? ?? ?????????? ??????</h1>
<form method="post">
<input type="text" placeholder="???????? ??????" class="form-control"><br>
<input type="text" placeholder="????? ??????" class="form-control"><br>
<textarea class="form-control"><br>
<input type="date" class="form-control"><br>
<button class="btn btn-success" type="submit">???????? ??????</button>
</form>
</div>
{% endblock %}
Sources
This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.
Source: Stack Overflow
Solution | Source |
---|---|
Solution 1 | Manoj Tolagekar |