我有一个包含html文件的文件夹,我想启动一个提供所请求文件的简单HTTP服务器。
我一直在尝试使用Rook
,但它要求生成HTML响应的应用程序功能。
library(Rook)
server <- Rhttpd$new()
server$start(quiet=TRUE)
server$add(name="my_app", app="path/to/app.R")
我想我可以以某种方式告诉应用程序函数读取所请求的HTML文件的内容并将其用作响应,但应该有一种更简单的方法。
答案 0 :(得分:2)
我知道这篇文章有点陈旧但我遇到了类似的问题,所以我想在这里发布我的解决方案。
[旁白:我想通过车辆提供常规的html / js / css与json对统计解决方案的ajax查询的响应 - 因此想要使用R]
R.server <- Rhttpd$new(); # Create server
# Use a Builder to add a
staticApp <- Builder$new(
Static$new(
urls=c('/www/css',
'/www/js/libs',
'/www/js',
'/www/img',
'/www'),
root=getwd()
))
R.server$add(app=staticApp, name="static")
R.server$start()
基本上我的工作目录包含一个名为 www 的文件夹,其中包含我的所有静态资源(在子文件夹css,js等中)。特别是如果文件夹 www 包含文件 index.html ,则可以通过 localhost:23702 / custom / static / www / index.html 强>
更多以R为中心的操作的其他应用程序可以轻松地包含在构建器构建中。
将 www 移至root = file.path(getwd(),'www')并对所有子文件夹进行递归搜索时,可能不会更干净。
希望这有帮助!
答案 1 :(得分:1)
您应该查看?Builder
处的示例。
你没错,Rook
希望你提供一个“app”。然而,“app”几乎可以根据需要构建。并Builder
进入了这一点。
Builder
的典型用法是提供:
brew
函数生成brew()的动态网页的网址,这些网址可以是.html
或.Rhtml
个网页