Playframework 2.0 为什么在Play 2项目中我的路由文件中无法识别此正则表达式?

Playframework 2.0 为什么在Play 2项目中我的路由文件中无法识别此正则表达式?,playframework-2.0,Playframework 2.0,我希望将所有.html文件重定向到它们所在的公用文件夹,因此我将其放入我的路由文件中: GET /$file<.html> controllers.Assets.at(path="/public/html", file) GET/$file controllers.Assets.at(path=“/public/html”,file) 但它表示请求“GET/index.html”未找到操作 但是我可以在那里看到它(当错误出现时): GET/$file

我希望将所有
.html
文件重定向到它们所在的公用文件夹,因此我将其放入我的
路由
文件中:

GET     /$file<.html>           controllers.Assets.at(path="/public/html", file)
GET/$file controllers.Assets.at(path=“/public/html”,file)
但它表示请求“GET/index.html”未找到
操作

但是我可以在那里看到它(当错误出现时):

GET/$file controllers.Assets.at(path:String=“/public/html”,file:String)


有人知道我做错了什么吗?

尝试添加一个
*
通配符:

GET     /$file*.html           controllers.Assets.at(path="/public/html", file)

尝试添加一个
*
通配符:

GET     /$file*.html           controllers.Assets.at(path="/public/html", file)

由于“.”是一个单字符通配符,因此您指定的正则表达式只与“/ahtml”、“/bhtml”、“/chtml”等类似的请求匹配

你想要的是这样的,我想:

GET   /$file<.*\.html$>      controllers.Assets.at(path="/public/html", file)
GET/$file controllers.Assets.at(path=“/public/html”,file)
无论文件的第一部分是什么,
*
都是包罗万象的


\.html$
是将其限制为html文件的原因。虽然不是严格必需的,但我对点进行了转义,因此它实际上匹配一个句点而不是任何字符。

您指定的正则表达式只匹配看起来像“/ahtml”、“/bhtml”、“/chtml”之类的请求,因为“.”是单字符通配符

你想要的是这样的,我想:

GET   /$file<.*\.html$>      controllers.Assets.at(path="/public/html", file)
GET/$file controllers.Assets.at(path=“/public/html”,file)
无论文件的第一部分是什么,
*
都是包罗万象的

\.html$
是将其限制为html文件的原因。虽然不是严格必要的,但我转义了点,因此它实际上匹配一个句点,而不是任何字符