2

背景として画像を含む単純なページを生成する次のコードがあります

r <- matrix(runif(9, 0, 1), 3)
g <- matrix(runif(9, 0, 1), 3)
b <- matrix(runif(9, 0, 1), 3)

col <- rgb(r, g, b)
dim(col) <- dim(r)

library(grid)
jpeg(filename="image.jpg")
grid.raster(col, interpolate=FALSE)
dev.off()

library(Rook)
server <- Rhttpd$new()

server$add(
  app=function(env){
    req <- Rook::Request$new(env)
    res <- Rook::Response$new()
    #....# r code
    res$write('
<!DOCTYPE html>
<html>
<head>              
<style>

body
{
background-image: url("image.jpg");
}

</style>
</head>
<body>
<h1>Hello World!</h1>
</h1>
</body>
</html>')

    res$finish()
  },
  name='webApp'
)

server$start(quiet=TRUE)
server$browse("webApp")

ただし、画像は表示されません。現在、タグに多くのcssスタイルフォーマットを使用していますが、機能していないようです... (関数内のすべてをファイルにエクスポートし、ブラウザで開くだけで画像が表示されます)<head>background-imageres$write.html

編集:

注意: 残念ながら、相対パスまたは絶対パスは違いはありません。Firebug と chrome dev ツールの両方に css 行が表示され、エラーは表示されません。上記の例をバックグラウンドで実行している画像を誰か見ることができますか?

4

1 に答える 1

1

パスの問題です。TLDR。作業ディレクトリを追加して名前を付けます (例: pic)

次のことを試してください。

library(Rook)
server <- Rhttpd$new()
r <- matrix(runif(9, 0, 1), 3)
g <- matrix(runif(9, 0, 1), 3)
b <- matrix(runif(9, 0, 1), 3)

col <- rgb(r, g, b)
dim(col) <- dim(r)

library(grid)
jpeg(filename="image.jpg")
grid.raster(col, interpolate=FALSE)
dev.off()




server$add(app = File$new(getwd()), name = 'pic')


server$add(
  app=function(env){
    req <- Rook::Request$new(env)
    res <- Rook::Response$new()
    #....# r code
    res$write('
<!DOCTYPE html>
<html>
<head>              
<style>

body
{
background-image: url("pic/image.jpg");
}

</style>
</head>
<body>
<h1>Hello World!</h1>
</h1>
</body>
</html>')

    res$finish()
  },
  name='webApp'
)

server$start(quiet=TRUE)
server$browse("webApp")

編集:一時ディレクトリで作業してみてください:

jpeg(filename=paste0(tempdir(), "/image.jpg"))

server$add(app = File$new(tempdir()), name = 'pic')
于 2013-07-08T11:15:40.940 に答える