【问题标题】:Why doesn't the asset function work in Symfony 5?为什么资产功能在 Symfony 5 中不起作用?
【发布时间】:2020-06-19 03:32:46
【问题描述】:

我使用$ composer create-project symfony/website-skeleton my_project_name 命令安装了 Symfony 5,目的是尽可能获得最完整的 Symfony 包。

配置好控制器和路由后,我开始使用 Bootstrap 4 通过 CDN 编写 Twig 模板,页面渲染正常。

当我决定在我的位置而不是通过 CDN 配置 Bootstrap 文件时,我意识到 asset() 函数没有返回存储在“public”文件夹中的文件的路径。

位于“公共”文件夹内的其他文件和目录也是如此。

我检查了我的“composer.json”文件,资产配置为以下版本:

"symfony/asset": "5.1.*"

它已正确安装在“vendor”文件夹中。

这是在“base.html.twig”文件中的代码中使用该函数的示例:

href="{{ asset("bootstrap/css/bootstrap.css") }}

我按照以下文档中的说明重新执行了安装“资产”组件的步骤,但也没有得到任何结果:

https://symfony.com/doc/current/components/asset.html

我想知道是否有人经历过,是否有任何解决方案。

谢谢。

【问题讨论】:

  • 您提供的代码预计在“public/bootstrap/css/bootstrap.css”中有一个文件。是这样吗?您能否使用此信息编辑您的问题?
  • 改用哪些路径?您尝试过什么调试问题?

标签: php symfony twig assets symfony5


【解决方案1】:

默认情况下不安装“资产”。

composer require symfony/asset

https://symfony.com/doc/current/templates.html

【讨论】:

    【解决方案2】:

    我偶然发现了这个问题的解决方案:

    该错误与我运行 PHP 服务器的方式有关。我是直接从public/ 目录运行的。

    public/内,执行以下命令:

    $ php -S localhost:8000
    

    除了asset()方法外,Symfony内置的系统总体上运行正常(我只注意到这个缺陷)。

    作为一种解决方案,访问主项目目录并使用以下命令运行服务器就足够了:

    $ php -S localhost:8000 -t public/
    

    我希望有人用理论信息来补充答案,说明这是如何纠正缺陷的,因为我是初学者,我对服务器的了解有限。

    【讨论】:

      【解决方案3】:

      对于使用 Symfony 6 的用户 我遇到了同样的问题来解决它 只需转到 config/packages/webpack_encore.yaml

      framework:
      assets:
          json_manifest_path: '%kernel.project_dir%/public/build/manifest.json'
      

      替换为

      framework:
      assets:
          version: 'v2'
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2015-10-09
        • 2015-07-16
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-07-16
        相关资源
        最近更新 更多