我有一个单页应用程序,我将其从更传统的Apache设置转换为KrakenJS。除了一点之外,这一切都很顺利。
该应用程序使用套接字来更改其状态,我们曾经为用户生成友好的URL以返回上一次搜索。像这样使用.htaccess设置:
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond $1 !^(favicon\.ico|favicon\.png|media|robots\.txt|crossdomain\.xml|css|js)
RewriteRule ^(.*)$ index.php [L]
这样,我们的静态文件得到了正确处理,所有其余文件被重定向到index.php,后者处理解析并继续查询正确的结果(例如:example.com/section1/category1,将重定向到主页面,并通过套接字发送section1,category1项目的查询。
我尝试修改index.js中的主路由以添加通配符,但无法处理静态文件(RewriteCond $1 !^(*static extensions*)
)
router.get('/', function (req, res) {
...
}
这个适用于用户从首页开始的用例,但(显然)如果我想直接访问/ sec1 / cat1
,则会给我不存在的路由router.get('*', function (req, res) {
...
}
这个重定向正确,但无法找到静态文件。
知道如何以与RewriteCond类似的方式处理静态文件吗?