2013-03-11 65 views
1

我將文件上傳到/upload文件夾,然後我想直接訪問我的文件,如:路線上傳文件播放框架2.10

http://localhost/upload/xxx.jpg 

當我添加如下路線:

GET  /upload/*file    controllers.Assets.at(path="/upload", file) 

它會導致另一個錯誤:

not enough arguments for method at: (path: String, file: String)play.api.mvc.Call. Unspecified value parameter file. 

<link rel="stylesheet" media="screen" href="@routes.Assets.at("stylesheets/main.css")"> 

然後,以後我改@routes.Assets.at("stylesheets/main.css")@routes.Assets.at("stylesheets/", "main.css"),還有另外一個錯誤:

[MatchError: (stylesheets/,main.css) (of class scala.Tuple2)] 

(path: @unchecked, file: @unchecked) match { 

有人可以幫我這條路呢?謝謝。

val main = play.Project(appName, appVersion, appDependencies).settings(
    // Add your own project settings here  
    playAssetsDirectories <+= baseDirectory/"upload" 
) 

更多信息:

回答

3

finnal,我從playframework網站的答案,這不是很明顯的發現。 。 http://www.playframework.com/documentation/2.0.4/Assets

從這個頁面:

不過,如果你定義了兩個映射的Assets.at行動,像這樣:

<script src="@routes.Assets.at("/public/javascripts", "jquery.js")"></script> 

<image src="@routes.Assets.at("/public/images", "logo.png")"> 

GET /javascripts/*file  controllers.Assets.at(path="/public/javascripts", file) 
GET /images/*file    controllers.Assets.at(path="/public/images", file) 

然後你會使用反向路由器時,需要指定參數但這可能無法解決我的問題,結果出現了問題中提到的第二個錯誤。

請仔細檢查path參數,它必須與您在路由文件中描述的相同。爲:

當我設置:除了

@routes.Assets.at("/public", "stylesheets/main.css")


,如果使用其他文件夾,如: GET /public/*file controllers.Assets.at(path="/public", file)

在HTML文件中

,我應該如下寫/上傳,在project/Build.scala中加入以下代碼play.Project是必不可少的。謝謝TizianoPiccardi

playAssetsDirectories <+= baseDirectory/"foo"