Añada hojas de estilo a la práctica anterior (sección 31.17.2).
[~/local/src/ruby/sinatra/rack/rack-rock-paper-scissors(bootstrap)]$ tree
.
|--- Gemfile
|--- Gemfile.lock
|--- README
|--- Rakefile
|--- TODO
|--- config.ru
|--- lib
| `--- rps.rb
|--- public
| |--- css
| | |--- bootstrap-responsive.css
| | |--- bootstrap-responsive.min.css
| | |--- bootstrap.css
| | `-- bootstrap.min.css
| |--- img
| | |--- glyphicons-halflings-white.png
| | |--- glyphicons-halflings.png
| | `-- programming-languages.jpg
| `-- js
| |--- bootstrap.js
| `--- bootstrap.min.js
|--- rps.rb
`-- views
`--- index.haml
6 directories, 18 files
use Rack::Static, :urls => ["/public"]
Servirá todas las peticiones que
comiencen por /public desde la carpeta public
localizada en el directorio actual (esto
es public/*).
En nuestro jerarquía pondremos en el programa rps.rb:
builder = Rack::Builder.new do use Rack::Static, :urls => ['/public'] use Rack::ShowExceptions use Rack::Lint run RockPaperScissors::App.new end Rack::Handler::Thin.run builder
y dentro del template haml nos referiremos por ejemplo al fichero javascript como
%script{:src => "/public/js/bootstrap.js"}
Otro ejemplo:
use Rack::Static, :urls => ["/css", "/images"], :root => "public"
servirá las peticiones comenzando con /css o /images
desde la carpeta public en el directorio actual
(esto es
public/css/* y public/images/*)
views/index.haml deberá enlazar a las hojas de estilo:
!!!
%html{:lang => "en"}
%head
%meta{:charset => "utf-8"}/
%title RPS
%link{:href => "/public/css/bootstrap.css", :rel => "stylesheet"}
%link{:href => "/public/css/bootstrap.css", :rel => "stylesheet"}
y las imágenes como:
%img(src="/public/img/programming-languages.jpg" width="40%")
path info de la petición Rack.
por ejemplo, cuando se usa
Rack::File.new("/etc")
podremos acceder al fichero passwd como
localhost:9292/passwd.
Casiano Rodriguez León 2015-01-07