2013-04-02 3 views
6

ここで説明するPlayサブプロジェクト機能の拡張テストを行っています:http://www.playframework.com/documentation/2.0/SBTSubProjectsしかし、私はエラーを取得しています:githubの上でホストされているアセットは既にオブジェクトとして定義されていますアセット

Assets is already defined as object Assets 

サンプル・アプリケーション:でも、メインプロジェクトのために、Asset Controller descriptionが、エラーが続けて:https://github.com/adis-me/PlayStrap

をここで説明したように、私は私のサブプロジェクトのための資産コントローラを定義していますポップアップ。私のプロジェクトに何が間違っていますか?

コントローラ

package com.company.playstrap.controllers; 

import controllers.AssetsBuilder; 

public class Assets { 

    public static controllers.AssetsBuilder delegate = new AssetsBuilder(); 

} 

ルートこれは既知のバグです

# Routes 
# This file defines all application routes (Higher priority routes first) 
# ~~~~ 

# Home page 
GET /        com.company.playstrap.controllers.Application.index() 

# Include sub projects 
-> /common        common.Routes 
-> /admin        admin.Routes 
-> /website        website.Routes 

# Map static resources from the /public folder to the /assets URL path 
GET  /assets/*file     com.company.playstrap.controllers.Assets.delegates.at(path="/public", file) 

答えて

5

ファイル:https://groups.google.com/forum/#!msg/play-framework/2Zk5wjAlIng/Jcec1lt7AzQJ

独自の管理モジュールのための私の回避策:

package controllers.admin; 
import controllers.AssetsBuilder; 
import play.api.mvc.AnyContent; 
import play.api.mvc.Action; 
import play.mvc.*; 

public class Application extends Controller { 

    private static AssetsBuilder delegate = new AssetsBuilder(); 

    public static Action<AnyContent> asset(String path, String file) { 
     return delegate.at(path, file); 
    } 

} 

//routes file 
GET /assets/*file controllers.admin.Application.asset(path="/public", file) 
+0

これは、ビュー内のすべての(逆のルーティングのもの)を書き込む必要があることを意味し'@ routes.Assets.asset(" someAss ")'?このバグはまだ修正されていますが、この問題のバグレポートは見つかりません... – adis

1

先週、私はAssetsクラスをJavaクラスとして記述しようとしていましたが、この問題に直面しました。私は、Scalaのクラスとしての私のサブモジュールで資産クラスを書いてコンパイルの問題を解決するためのドキュメントに記載されたのと同じ方法でできます。http://www.playframework.com/documentation/2.1.1/SBTSubProjects

基本的には、私のプロジェクトの構造は次のとおりです。

MyApplication 
    | - app 
    | - conf 
    | - modules 
     | - admin 
      | - app 
       | - controllers 
        | - admin 
         | - Assets.scala 
    | - project 
    | - public 


Assets.scala内容:

package controllers.contabil 

object Assets extends controllers.AssetsBuilder 


そして最後に、私のadmin.routesファイルの内容は次のとおりです。

GET  /assets/*file controllers.admin.Assets.at(path="/public", file) 

# Home page 
GET  /index   controllers.admin.Application.index() 


乾杯