Pregunta

Suponiendo que tengo una estructura de directorio similar a:

path_to_file/one/index.html

¿Cómo puedo configurar mi aplicación sinatra para que se enrute a

mysite.com/path_to_file/one/

y ¿tiene que renderizar el archivo mencionado anteriormente?path_to_file siempre será el mismo, pero habrá diferentes carpetas (two, three, etc.) dentro de él.

Probé lo siguiente:

get '/path_to_file/:number' do
  File.read(File.join('path_to_file', "#{params[:number]}", "index.html"))
end

pero luego, p. ej.El archivo javascript vinculado desde index.html no se procesa correctamente.

¿Fue útil?

Solución

¡Entendido!

get '/path_to_file/:number/:file' do
  File.read(File.join('path_to_file', "#{params[:number]}", "#{params[:file]}"))
end

get '/path_to_file/:number' do
  File.read(File.join('path_to_file', "#{params[:number]}", "index.html"))
end

El orden es importante, ya que si estos dos métodos se invierten, get '/path_to_file/:number' se convierte en un superconjunto de get '/path_to_file/:number/:file'.

Otros consejos

Solo una idea, pero puede configurar el software de su servidor, Apache, nginx, lo que sea que esté utilizando, para servir .css y .js y archivos de imagen desde una ubicación diferente.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top