我正在尝试设置两个不同的静态资产路由,第二个失败。我错过了什么?
要复制此问题:
从scala示例中的hello world开始。
在路线上添加一条线,所以现在有两条静态路线:
GET /assets/*file controllers.Assets.at(path="/public", file)
GET /assets2/*file controllers.Assets.at(path="/public2", file)
注释掉main.scala.html中的资产引用,因此它不会抱怨它们
将文件放在公共场所和public2。
$ cat > public/foo.txt
hi
$ mkdir public2
$ cp public/foo.txt public2
验证公共目录是否有效。
$ telnet localhost 9000
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
GET /assets/foo.txt HTTP/1.0
HTTP/1.1 200 OK
Content-Length: 3
Content-Type: text/plain
Etag: 5246040afe91a4cc93bd838a4d5db3984b99470b
Cache-Control: no-cache
hi
Connection closed by foreign host.
验证第二个不起作用。
$ telnet localhost 9000
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
GET /assets2/foo.txt HTTP/1.0
HTTP/1.1 404 Not Found
Content-Length: 0
Connection closed by foreign host.
我确信这里有一些明显的东西,我只是没有看到它。
答案 0 :(得分:5)
您应该在sbt config
中将public2
文件夹添加到playAssetsDirectories
playAssetsDirectories <+= baseDirectory / "public2"
请参阅PlaySettings作为示例。