2013-04-02 4 views
6

Я делаю более расширенные тесты для функции воспроизведения Subproject, как описано здесь: http://www.playframework.com/documentation/2.0/SBTSubProjects. Но я получаю сообщение об ошибке:Активы уже определены как объекты Активы

Assets is already defined as object Assets 

Sample приложение, размещенное на GitHub: https://github.com/adis-me/PlayStrap

Я определил контроллер Asset для моих подпроектов, как описано здесь: Asset Controller description, даже для основного проекта, но ошибка продолжает выскользнуть. Что не так с моим проектом?

Контроллер

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() 


Приветствия

Смежные вопросы