【发布时间】:2014-03-22 19:32:33
【问题描述】:
我正在使用 fatfree 框架,现在发生了好几次突然找不到路由了。调用路由将导致 404。如果我重命名路由而不进行任何其他更改,则会再次找到它。 没有并发路线,因为我只是使用简单的路线,例如:
$f3->route('GET|POST /test',
function($f3) use ($db){ ... });
调用 /test 将导致 404。清空浏览器缓存或使用其他浏览器无济于事。如果我将代码更改为例如:
$f3->route('GET|POST /test2',
function($f3) use ($db){ ... });
使用 /test2 可以正常工作。
这让我很担心,这完全是随机发生的,除了重命名它之外,我没有找到任何方法来修复旧路线。
是否可以清除 f3 或类似的路由相关缓存以解决问题?
【问题讨论】:
-
路由不会被缓存,但 HTTP 响应会被缓存。您可以通过将
CACHE变量设置为 FALSE 来确保禁用缓存。除此之外,您能否澄清此行为是否影响所有路由或仅影响映射到匿名函数的路由。还要确保您使用的是latest dev 版本。 -
感谢您的回复。我现在已经下载并更新到最新的开发版本,但仍然遇到同样的问题。我已使用 $f3->set('CACHE',FALSE); 将缓存设置为 false;在 index.php 中,我也使用过 $f3->clear('CACHE');作为额外的可能性。不幸的是,我仍然遇到同样的错误。将我的路线从 /test2 重命名为 /test 后, /test 仍然给我一个 404 并且 /test2 仍然可以访问。还有什么我应该做的吗?
-
如果您使用 APC,请按照 @ikkez 提供的说明进行操作。否则,由于这看起来像一个错误,我建议您将其发布到专用的 Google group 以解决此问题。
-
这是因为 htaccess。您可以使用此链接stackoverflow.com/questions/9769665/… 找到答案