Приносим извинения за основной вопрос, но я не могу выяснить, почему лист CSS, вызванный в заголовке моего базового шаблона, не подключен, когда я проверяю свой файл index.html на http.server .
Я перемещаю свой сайт на Python и jinja, нет Framewrpt. На основе некоторых уроков, которые я нашел в Интернете: < /p>
# server.py
import os
import http.server
import socketserver
from jinja2 import Environment, FileSystemLoader
PORT = 8000
STATIC_DIR = "static/"
class StaticFileHandler(http.server.SimpleHTTPRequestHandler):
def __init__(self, *args, **kwargs):
super().__init__(*args, directory=STATIC_DIR, **kwargs)
with socketserver.TCPServer(("", PORT), StaticFileHandler) as httpd:
print(f"Serving at http://localhost:{PORT}/")
httpd.serve_forever()
< /code>
Заголовок базового шаблона выглядит так (пропуская остальную часть кода шаблона, так как я не думаю, что он здесь актуален): < /p>
{% block title %}{% endblock title %}
Я также пытался написать пути в статические файлы как «static/styles.css» и так далее, но не повезло. Что мне не хватает? Я чувствую, что (и надеюсь), это просто какой -то глупый надзор, который прямо у моего носа, и я не вижу его, но ... ну, я нанес свой мозг на это и просто не вижу этого. Есть идеи? Я подумал, что оставить это пустым или просто добавить/, что это сделает, но они, кажется, показывают мне корневой каталог моего компьютера, а не проект, и, очевидно, я не хочу этого. Папка Project, или, может быть, папка сайта , так как я планирую создавать выводную папку для всех файлов HTML для загрузки, например, статический генератор сайта? Тестирование: < /p>
# write-posts.py
from jinja2 import Environment, FileSystemLoader
from datetime import datetime, timezone
# date = datetime(tzinfo=timezone.utc).isoformat()
posts = [
{"title": "First Post", "slug": "first-post", "date": "2025, 7, 1", "body": "First post!", "tags": "First Post"},
]
environment = Environment(loader=FileSystemLoader("templates"))
template = environment.get_template("index.html")
filename = "index.html"
content = template.render(posts=posts)
with open(filename, mode="w", encoding="utf-8") as message:
message.write(content)
print(f"... wrote {filename}")
< /code>
Редактировать 2: Я попробовал предложения Фураса, но я все еще не получаю статические файлы для подключения. Вот мои обновленные файлы:
[b] server.py[/b]
import os
import http.server
import socketserver
from jinja2 import Environment, FileSystemLoader
PORT = 8000
BASE_DIR = "source/" # Directory containing static files. "BASE_DIR="/full/path/to/www/" might be better if server runs from a different working directory.
class StaticFileHandler(http.server.SimpleHTTPRequestHandler):
def __init__(self, *args, **kwargs):
super().__init__(*args, directory=BASE_DIR, **kwargs)
with socketserver.TCPServer(("", PORT), StaticFileHandler) as httpd:
print(f"Serving at http://localhost:{PORT}/")
httpd.serve_forever()
write-posts.py (мой модуль/скрипт для создания домашней страницы index.html. Примечание У меня также есть шаблон для моей домашней страницы, который в настоящее время называется «index.html». Также. Да, я, вероятно, должен изменить это, но я работаю с ней сейчас.
Приносим извинения за основной вопрос, но я не могу выяснить, почему лист CSS, вызванный в заголовке моего базового шаблона, не подключен, когда я проверяю свой файл index.html на http.server . Я перемещаю свой сайт на Python и jinja, нет Framewrpt. На основе некоторых уроков, которые я нашел в Интернете: < /p> [code]# server.py import os import http.server import socketserver from jinja2 import Environment, FileSystemLoader
PORT = 8000 STATIC_DIR = "static/"
class StaticFileHandler(http.server.SimpleHTTPRequestHandler): def __init__(self, *args, **kwargs): super().__init__(*args, directory=STATIC_DIR, **kwargs)
with socketserver.TCPServer(("", PORT), StaticFileHandler) as httpd: print(f"Serving at http://localhost:{PORT}/") httpd.serve_forever() < /code> Заголовок базового шаблона выглядит так (пропуская остальную часть кода шаблона, так как я не думаю, что он здесь актуален): < /p>
{% block title %}{% endblock title %}
[/code] Я также пытался написать пути в статические файлы как «static/styles.css» и так далее, но не повезло. Что мне не хватает? Я чувствую, что (и надеюсь), это просто какой -то глупый надзор, который прямо у моего носа, и я не вижу его, но ... ну, я нанес свой мозг на это и просто не вижу этого. Есть идеи? Я подумал, что оставить это пустым или просто добавить/, что это сделает, но они, кажется, показывают мне корневой каталог моего компьютера, а не проект, и, очевидно, я не хочу этого. Папка Project, или, может быть, папка сайта , так как я планирую создавать выводную папку для всех файлов HTML для загрузки, например, статический генератор сайта? Тестирование: < /p> [code]# write-posts.py from jinja2 import Environment, FileSystemLoader from datetime import datetime, timezone
with open(filename, mode="w", encoding="utf-8") as message: message.write(content) print(f"... wrote {filename}") < /code> Редактировать 2: Я попробовал предложения Фураса, но я все еще не получаю статические файлы для подключения. Вот мои обновленные файлы: [b] server.py[/b] import os import http.server import socketserver from jinja2 import Environment, FileSystemLoader
PORT = 8000 BASE_DIR = "source/" # Directory containing static files. "BASE_DIR="/full/path/to/www/" might be better if server runs from a different working directory.
class StaticFileHandler(http.server.SimpleHTTPRequestHandler): def __init__(self, *args, **kwargs): super().__init__(*args, directory=BASE_DIR, **kwargs)
with socketserver.TCPServer(("", PORT), StaticFileHandler) as httpd: print(f"Serving at http://localhost:{PORT}/") httpd.serve_forever() [/code] [b] base.html шаблон (только тег головки) [/b] [code]
{% block title %}{% endblock title %}
[/code] [b] write-posts.py (мой модуль/скрипт для создания домашней страницы index.html. Примечание У меня также есть шаблон для моей домашней страницы, который в настоящее время называется «index.html». Также. Да, я, вероятно, должен изменить это, но я работаю с ней сейчас.[code]from jinja2 import Environment, FileSystemLoader from datetime import datetime, timezone