我有一个页面网站只使用HTML,CSS和JavaScript.我想将应用程序部署到Heroku,但我找不到办法.我现在正试图让应用程序与Sinatra一起工作.
.
|-- application.css
|-- application.js
|-- index.html
|-- jquery.js
`-- myapp.rb
Run Code Online (Sandbox Code Playgroud)
以下是内容myapp.rb
.
require 'rubygems'
require 'sinatra'
get "/" do
# What should I write here to point to the `index.html`
end
Run Code Online (Sandbox Code Playgroud)
Rya*_*arn 167
您可以使用send_file
帮助程序来提供文件.
require 'sinatra'
get '/' do
send_file File.join(settings.public_folder, 'index.html')
end
Run Code Online (Sandbox Code Playgroud)
这将从index.html
已配置为具有应用程序的静态文件的任何目录中提供.
Tat*_*son 130
没有任何额外配置,Sinatra将为其提供资产public
.对于空路线,您需要渲染索引文档.
require 'rubygems'
require 'sinatra'
get '/' do
File.read(File.join('public', 'index.html'))
end
Run Code Online (Sandbox Code Playgroud)
路由应该返回一个String
成为HTTP响应主体的路由.File.read
打开文件,读取文件,关闭文件并返回String
.
Mor*_*gan 61
您可以从公共文件夹中托管它们,它们不需要路由.
.
-- myapp.rb
`-- public
|-- application.css
|-- application.js
|-- index.html
`-- jquery.js
Run Code Online (Sandbox Code Playgroud)
在myapp.rb中
set :public_folder, 'public'
get "/" do
redirect '/index.html'
end
Run Code Online (Sandbox Code Playgroud)
链接到公共中的某个子文件夹
set :public_folder, 'public'
get "/" do
redirect '/subfolder/index.html'
end
Run Code Online (Sandbox Code Playgroud)
./public中的所有内容都可以从'/whatever/bla.html访问
示例:
./ public/styleslesheets/screen.css
可通过'/stylesheets/screen.css访问'无需路由
Rob*_*ron 12
请记住,在生产中,您可以让您的Web服务器index.html
自动发送,以便请求永远不会到达Sinatra.这对于性能更好,因为您不必通过Sinatra/Rack堆栈来提供静态文本,这正是Apache/Nginx所做的非常棒的事情.
归档时间: |
|
查看次数: |
82155 次 |
最近记录: |