【问题标题】:Symfony2 routing behaves different in prod environmentSymfony2 路由在 prod 环境中的行为不同
【发布时间】:2012-06-14 10:20:27
【问题描述】:

这个我想不通。

首先让我说我的缓存被清除了。我什至删除了 app/cache 中的 prod 和 dev 目录。所以这不是未更新产品路线的问题。

这是我的路由器:调试输出:

产品: 应用程序/控制台路由器:调试 --env=prod:

[router] Current routes
Name            Method Pattern
instrumentlabel ANY    /backend/instrumentlabel/{page}/{filter}
marketmapping   ANY    /backend/marketmapping/{page}/{filter}

开发: 应用/控制台路由器:debug --env=dev

[router] Current routes
Name            Method Pattern
instrumentlabel ANY    /backend/instrumentlabel/{page}/{filter}
marketmapping   ANY    /backend/marketmapping/{page}/{filter}

两者都是一样的(我的配置没有区别)。

访问/backend/instrumentlabel 可以在两种环境中使用。但是当我尝试访问/backend/marketmapping 时,它只能在开发环境中工作。

在 prod 环境中,我总是无缘无故地重定向到 /backend/marketmapping/(注意前导斜杠)。

我的prod.log 简单地说:

 request.ERROR: [...]: No route found for "GET /backend/marketmapping/"

【问题讨论】:

  • 你能显示相关的 routing.yml 和可能的 routing_dev.yml 吗?

标签: symfony routing production-environment


【解决方案1】:

事实证明这实际上是浏览器缓存问题

我意识到 FireFox 声明 /backend/marketmapping 已永久 (HTTP 301) 移动到 /backend/marketmapping/

一周前,我不得不更改路由。在此之前,Symfony2 一定已经用 301 响应了对/backend/marketmapping 的请求到/backend/marketmapping/。我的 FireFox 缓存了该信息(但仅在 prod 环境中,在 dev 中这是一个 302,浏览器不得缓存)。

在我检查了 Opera 中一切正常的路线后,我意识到了这一点。

它可能关注的对象:

要强制 FireFox 忘记缓存重定向,您可以按照以下说明操作:

http://forums.mozillazine.org/viewtopic.php?f=38&t=1995719


有趣的是,您提出的大多数问题都是在您提出问题后立即自行回答的。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-06-13
    • 1970-01-01
    • 1970-01-01
    • 2015-12-06
    • 2015-08-10
    • 2022-06-21
    • 2017-04-01
    • 2021-11-25
    相关资源
    最近更新 更多