创建一个新的示例play2 app:
play new test
然后:
cd test
play run
访问http://localhost:9000
,我们可以看到正确显示默认主页。
但是当我分开时:
play dist
将生成的dist/test-1.0-SNAPSHOT.zip
上传到服务器并解压缩,然后运行:
cd test-1.0.SNAPSHOT
./start
然后访问http://myserver:9000
,我发现无法找到css文件。
GET http://myserver:9000/assets/stylesheets/main.css
404
由于app是play2提供的内置示例,并不意味着它是play2的错误?
PS:
routes
文件:
# Map static resources from the /public folder to the /public path
GET /assets/*file controllers.Assets.at(path="/public", file)
play2提供的Assets.scala
是:
object Assets extends Controller {
def at(path: String, file: String): Action[AnyContent] = Action { request =>
val resourceName = Option(path + "/" + file).map(name =>
if (name.startsWith("/")) name else ("/" + name)).get
if (new File(resourceName).isDirectory
|| !new File(resourceName).getCanonicalPath.startsWith(new File(path).getCanonicalPath)) {
NotFound
} else {
...
}
...
}
似乎播放试图找到磁盘上存在的目录和文件,但public
目录打包在test-1.0-SANPSHOT/libs/test_2.9.1-1.0-SNAPSHOT.jar
中,而不是真实文件。
答案 0 :(得分:2)
为我解决:只需检查文件main.css是否为空。
答案 1 :(得分:1)
即使你进行“游戏运行”也无法找到CSS文件,所以它与打包在jar中无关。