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