【问题标题】:No route found for "GET /bundles/framework/images/input_bg.gif"找不到“GET /bundles/framework/images/input_bg.gif”的路线
【发布时间】:2013-07-10 03:47:48
【问题描述】:

我已经建立了一个登录表单,可以在开发环境下完美运行。但是一旦我切换到生产环境,就会出现 500 错误。我检查了 prod.log 错误是

Uncaught PHP Exception Symfony\Component\HttpKernel\Exception\NotFoundHttpException: "No route found for "GET /bundles/framework/images/input_bg.gif"" at /Users/zhongxingguo/Sites/QuidzOMS/app/cache/prod/classes.php line 1883 {"exception":"[object] (Symfony\\Component\\HttpKernel\\Exception\\NotFoundHttpException: No route found for \"GET /bundles/framework/images/input_bg.gif\" .....

我试图删除产品缓存,它没有帮助。而且我还检查了/web/bundles/framework/images文件夹,没有input_bg.gif。

谁能帮帮我?

非常感谢。


[2013-07-10 16:36:02] request.CRITICAL: Uncaught PHP Exception RuntimeException: "PDOException was thrown when trying to read the session data: SQLSTATE[23000]: Integrity constraint violation: 1062 Duplicate entry 'pj6krphgnjhj00js435pbr70d5' for key 'PRIMARY'" at /Users/zhongxingguo/Sites/QuidzOMS/vendor/symfony/symfony/src/Symfony/Component/HttpFoundation/Session/Storage/Handler/PdoSessionHandler.php line 154 {"exception":"[object] (RuntimeException: PDOException was thrown when trying to read the session data: SQLSTATE[23000]: Integrity constraint violation: 1062 Duplicate entry 'pj6krphgnjhj00js435pbr70d5' for key 'PRIMARY' at /Users/zhongxingguo/Sites/QuidzOMS/vendor/symfony/symfony/src/Symfony/Component/HttpFoundation/Session/Storage/Handler/PdoSessionHandler.php:154, PDOException: SQLSTATE[23000]: Integrity constraint violation: 1062 Duplicate entry 'pj6krphgnjhj00js435pbr70d5' for key 'PRIMARY' at /Users/zhongxingguo/Sites/QuidzOMS/vendor/symfony/symfony/src/Symfony/Component/HttpFoundation/Session/Storage/Handler/PdoSessionHandler.php:239)"} []
[2013-07-10 16:36:02] security.DEBUG: Write SecurityContext in the session [] []

现在我认为问题是由 pdoSessionHandler 引起的。 我将会话数据存储在数据库中,但有时当用户注销时,会话数据似乎没有被清除。

错误如下:

PDOException was thrown when trying to read the session data: SQLSTATE[23000]: Integrity constraint violation: 1062 Duplicate entry 'jq09f6s8eqvhvpiik322h0kkh1' for key 'PRIMARY'

有谁知道如何解决会话问题?

我的会话配置是:

framework:
    session:
        handler_id:   session.handler.pdo
services:
    pdo:
        class:  pdo
        arguments:
            - "mysql:host=%database_host%;port=%database_port%;dbname=%database_name%"
            - "%database_user%"
            - "%database_password%"
        calls:
            - [setAttribute, [3, 2]]

    session.handler.pdo:
        class:      Symfony\Component\HttpFoundation\Session\Storage\Handler\PdoSessionHandler
        arguments:  ["@pdo", "%pdo.db_options%"]

谢谢大家在这里帮助我。

【问题讨论】:

  • 检查您的 htaccess 文件,确保您没有将图像请求路由到您的 symphony 控制器。
  • 非常感谢您的回复。我认为问题不在于 .htaccess 文件。我刚刚重新加热了缓存。现在的问题是,我可以登录,但 9 次 10 次它只会响应 500 错误。有时幸运的是我可以成功登录。我在问题中编辑的错误。

标签: php .htaccess symfony


【解决方案1】:

如果您在/bundles/something/whatever 之类的路径中遇到错误,建议您确保资产正确无误。

输入这个命令:

php app/console assets:install --symlink

在我看来,也建议使用--no-warmup 参数清除缓存。

如果之后仍然无法正常工作,让我们尝试其他方法。

我希望我能帮到你,伙计;)

【讨论】:

  • 非常感谢丹妮。我刚刚发现原因可能是 Symfony 生成了会话的重复密钥。我不确定这是怎么发生的。我将会话存储在数据库中,但有时当用户注销时,会话似乎没有被清除。错误是这样的:PDOException was thrown when trying to read the session data: SQLSTATE[23000]: Integrity constraint violation: 1062 Duplicate entry 'jq09f6s8eqvhvpiik322h0kkh1' for key 'PRIMARY'
  • 请原谅我的问题,但是,为什么要将会话存储在数据库中?我之所以问,是因为 Symfony2 具有处理良好的本地会话管理和存储。另一方面,如果你想将它存储到数据库中,你需要在创建另一个具有相同主值的会话之前检查一个会话是否已经存在:)
  • 谢谢丹妮。我已经检查了 PdoSessionHandler 的代码,但没有发现任何问题。我不知道。正如你所说,我可能会为我们的项目更改为本地会话。非常感谢。
  • 不客气,伙计 :) 我希望我对你有所帮助。我知道我没有给你你正在寻找的答案,但如果你想“竖起大拇指”我的答案......请随意:D
  • 我确实对你投了反对票。显然没有什么私人的;我看不到您的回答如何解决所提出的问题。该问题涉及完整性约束违规,这是数据库层的问题,与资产的安装或 Symfony 使用的缓存无关。将您的答案标记为正确给人的印象是问题已解决,但显然不是。无论如何,我随后发现问题中所述的问题是一个已知的错误,实际上刚刚被修补:) github.com/symfony/symfony/issues/8448
猜你喜欢
  • 1970-01-01
  • 2013-04-29
  • 2013-06-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-09-09
  • 2013-01-09
相关资源
最近更新 更多