Hej!
Mam pewien problem. Napisałem najbardziej podstawowy serwer http (narazie obsługuje tylko “GET”). Gdy otwieram plik index.html z poziomu przeglądarki, wszystko wyświetla się poprawnie (tzn. plik .css się ładuje). Jednakże po uruchomieniu serwera i otwarciu strony http://localhost tekst nie jest sformatowany, czyli plik .css się nie załadował. Inspektor w Firefoksie pokazuje, że style.css jest załadowane. Tak samo w Chrome. Co więcej, serwer w logu wyświetla
127.0.0.1 - - [10/Aug/2014 23:43:12] "GET / HTTP/1.1" 200 196 0.0039
localhost - - [10/Aug/2014:23:43:12 CEST] "GET / HTTP/1.1" 200 196
- -> /
127.0.0.1 - - [10/Aug/2014 23:43:12] "GET /style.css HTTP/1.1" 200 27 0.0004
localhost - - [10/Aug/2014:23:43:12 CEST] "GET /style.css HTTP/1.1" 200 27
http://localhost/ -> /style.css
Czemu tak się dzieje?
Mam taką strukturę projektu:
project
server.rb
index.html
style.css
$ cat server.rb
#!/usr/bin/env ruby
require 'sinatra'
#zwraca zawartość pliku tekstowego jako String
def getContent(path)
file = File.open(path, "r")
file.read
end
#ustawia port dla Sinatry na 80
set :port, 80
get '/' do
getContent "index.html"
end
get '/:name' do |n|
getContent "#{n}"
end
$ cat index.html
<!DOCTYPE html>
<html>
<head>
<title>Ruby HTTP server</title>
<link rel="stylesheet" type="text/css" href="style.css" />
</head>
<body>
<div id="content">
Hello, Sinatra!
</div>
</body>
</html>
$ cat style.css
#content {
padding: 5em;
}