Http Crystal lang serve index.html
我对这门语言有点陌生,我想开始破解一个非常简单的HTTP服务器。我当前的代码如下所示:Http Crystal lang serve index.html,http,crystal-lang,Http,Crystal Lang,我对这门语言有点陌生,我想开始破解一个非常简单的HTTP服务器。我当前的代码如下所示: require "http/server" port = 8080 host = "127.0.0.1" mime = "text/html" server = HTTP::Server.new(host, port, [ HTTP::ErrorHandler.new, HTTP::LogHandler.new, HTTP::StaticFileHandler.new("./public"),
require "http/server"
port = 8080
host = "127.0.0.1"
mime = "text/html"
server = HTTP::Server.new(host, port, [
HTTP::ErrorHandler.new,
HTTP::LogHandler.new,
HTTP::StaticFileHandler.new("./public"),
]) do |context|
context.response.content_type = mime
end
puts "Listening at #{host}:#{port}"
server.listen
我在这里的目标是,我不想列出目录,因为这样就可以了。如果public/
上有index.html
,我实际上想提供index.html
,而不必将index.html
放在URL栏中。让我们假设index.html
确实存在于public/
中。有可能有用的文档指针吗?类似这样的东西吗
require "http/server"
port = 8080
host = "127.0.0.1"
mime = "text/html"
server = HTTP::Server.new(host, port, [
HTTP::ErrorHandler.new,
HTTP::LogHandler.new,
]) do |context|
req = context.request
if req.method == "GET" && req.path == "/public"
filename = "./public/index.html"
context.response.content_type = "text/html"
context.response.content_length = File.size(filename)
File.open(filename) do |file|
IO.copy(file, context.response)
end
next
end
context.response.content_type = mime
end
puts "Listening at #{host}:#{port}"
server.listen