Использование 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()