0
我是新來玩框架,我試圖讓它與RequireJs一起工作。當我在開發模式下運行我的應用程序時,一切運行正常,但是當我設置application.mode=prod
並啓動服務器時play start
我遇到了問題。Playframework/RequireJs JavaScript文件未被優化
嘗試加載/assets/javascripts-min/home/main.js時,瀏覽器收到HTTP404。
這裏是我的Build.scala文件
import sbt._
import Keys._
import play.Project._
import com.google.javascript.jscomp._
import java.io.File
object MyBuild extends Build {
val appDependencies = Seq (
jdbc,
anorm,
cache
)
val appVersion = "0.0.1"
val appName = "TodoList"
// set clojure compiler options so it won't choke on modern js frameworks
val root = new java.io.File(".")
val defaultOptions = new CompilerOptions()
defaultOptions.closurePass = true
defaultOptions.setProcessCommonJSModules(true)
defaultOptions.setCommonJSModulePathPrefix(root.getCanonicalPath + "/app/assets/javascripts/")
defaultOptions.setLanguageIn(CompilerOptions.LanguageMode.ECMASCRIPT5)
CompilationLevel.WHITESPACE_ONLY.setOptionsForCompilationLevel(defaultOptions)
val main = play.Project(appName, appVersion, appDependencies).settings(
(Seq(requireJs += "home/main.js", requireJsShim := "home/main.js") ++ closureCompilerSettings(defaultOptions)): _*
)
}
您是否看到日誌中的「RequireJS優化已開始......」?您還應該檢查服務器啓動過程中是否有任何異常。在優化過程中,我已經遇到了FileNotFoundException,並且未生成優化文件(但無論如何都啓動了播放服務器) – mguillermin
不,我沒有看到,我也在服務器啓動過程中看到任何異常。他們將在文件日誌\ application.log中,對嗎? – Jason
是的,默認情況下,日誌會附加到'logs/application.log'。如果您沒有看到「RequireJS優化已經開始......」,那麼您的構建配置可能不正確。通過在模板中設置requireJs + =「main.js」'和requireJsShim + =「main.js」'和'@ helper.requireJs',我可以在日誌中看到消息並且一切正常。 (請參閱:https://gist.github.com/mguillermin/9324154) – mguillermin