gpt4 book ai didi

routes - `play dist` , `main.css` 返回 404

转载 作者:行者123 更新时间:2023-12-04 05:52:41 24 4
gpt4 key购买 nike

创建一个新的示例 play2 应用程序:

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的bug吗?

PS:
routes文件:
# Map static resources from the /public folder to the /public path
GET /assets/*file controllers.Assets.at(path="/public", file)

Assets.scala play2 提供的是:
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 {
...
}

...
}

似乎 play 正在尝试查找磁盘上存在的目录和文件,但是 public目录打包在 test-1.0-SANPSHOT/libs/test_2.9.1-1.0-SNAPSHOT.jar ,不是真正的文件。

最佳答案

即使您执行“Play 运行”也找不到该CSS文件,因此与将其打包在jar中无关。

关于routes - `play dist` , `main.css` 返回 404,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9888369/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com