Использование Python SimpleHTTPServer для обслуживания файлов без.html

Я хочу использовать SimpleHTTPServer для обслуживания моего локального сайта во время разработки. Я использую базовый JavaScript, HTML и CSS. У меня есть такая структура проекта:

  • приложение (папка с файлами src)
  • dist (сборка папки, где все находится для хоста)
    • активы (css, js и т. д.)
    • сервисы (html файлы для разных сервисов)
    • name_of_service_1.html
    • name_of_service_2.html
    • index.html
    • services.html
  • package.json
  • gulp.js

Внутри навигации у меня есть базовая структура для каждой ссылки, что-то вроде этого:

<a href="/services">Services</a>
<a href="/services/name_of_service_1>Service 1</a>

Кроме того, я использую предзагрузку HTML, чтобы страницы загружались быстрее, если кто-то наводит курсор на эти ссылки. Из-за этого я не могу использовать services.html и т. Д., Потому что в этом случае предварительная загрузка не будет работать. Я использую netlify для размещения этого сайта, и там все отлично работает.

Мой вопрос: как обслуживать локально с SimpleHTTPServer, но эта страница будет хорошо загружаться без расширения.html в ссылке.

1 ответ

Вот как это сделать:

      import http.server
from http.server import HTTPServer, BaseHTTPRequestHandler
import socketserver

PORT = 8080

Handler = http.server.SimpleHTTPRequestHandler

Handler.extensions_map={
    '.html': 'text/html',
    '': 'text/html', # Default is 'application/octet-stream'
    }

httpd = socketserver.TCPServer(("", PORT), Handler)

print("serving at port", PORT)
httpd.serve_forever()

Ссылка

Другие вопросы по тегам