【问题标题】:Twig assets unable to find js files树枝资产无法找到 js 文件
【发布时间】:2015-11-24 19:29:07
【问题描述】:

我使用 Symfony 2.7。我试图通过 javascript 块加载 javascript 文件。但树枝总是抛出以下错误信息:

模板编译过程中抛出异常 (“无法找到文件”@AppBundle/Resources/public/js/“。”)在 “安全/registration.html.twig”。

所以这里是我的 registration.html.twig

{% block body %}
 //divs.
{% endblock %}

{% block javascripts %}
    {% javascripts '@AppBundle/Resources/public/js/*' %}
        <script src="{{ asset_url }}"></script>
    {% endjavascripts %}
{% endblock %}

我检查了文件夹路径,没问题,在我看来: /var/www/html/UserAuthentication/app/Resources/public/js/registration.js

这里是 index.twig.html,我在其中包含 registration.twig.html

{% extends '::base.html.twig' %}

{% block body %}
    <div id="wrapper">
        <div id="container">

            {{ render(controller('AppBundle:Security:login')) }}

            {{ render(controller('AppBundle:Security:register')) }}

        </div>
    </div>
{% endblock %}

这就是我的 base.twig.html 的外观:

<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8" />
        <title>{% block title %}Welcome!{% endblock %}</title>
        {% block stylesheets %}{% endblock %}
        <link rel="icon" type="image/x-icon" href="{{ asset('favicon.ico') }}" />
        <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/css/bootstrap.min.css">
        <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/css/bootstrap-theme.min.css">

    </head>
    <body>
        <div class="container">
            {% block body %}{% endblock %}
        </div>
        <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.4/jquery.min.js"></script>
        <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/js/bootstrap.min.js"></script>
        {% block javascripts %}{% endblock %}
    </body>
</html>

我希望 registration.js 位于 javascripts 块内

我的config.yml

assetic:
    debug:          "%kernel.debug%"
    use_controller: false
    bundles:        [ 'AppBundle' ]

我以这种方式尝试了 bundlesbundles: [],但它不会改变树枝中的任何内容,我的树枝模板仍然抛出相同的异常。

我真的没有找到,问题出在哪里/我不明白。 有人知道我的错误在哪里吗?

这里是我的捆绑包依赖项(composer.json):

"require": {
        "php": ">=5.3.9",
        "symfony/symfony": "2.7.*",
        "doctrine/orm": "~2.2,>=2.2.3,<2.5",
        "doctrine/dbal": "<2.5",
        "doctrine/doctrine-bundle": "~1.4",
        "symfony/assetic-bundle": "dev-master",
        "symfony/swiftmailer-bundle": "~2.3",
        "symfony/monolog-bundle": "~2.4",
        "sensio/distribution-bundle": "~4.0",
        "sensio/framework-extra-bundle": "~3.0,>=3.0.2",
        "incenteev/composer-parameter-handler": "~2.0",
        "ircmaxell/password-compat": "~1.0.3"
    },

是的,我已经多次运行app/console cache:clearapp/console assets:installapp/console assetic:dump 命令。 :(

【问题讨论】:

  • 你在 src/AppBundle/Resource/public/js 里有什么?
  • 一个javascript文件,registration.js

标签: javascript symfony twig


【解决方案1】:

@AppBundle/Resources/public/js/* 指向 src/AppBundle/Resources/public/js/* 不要应用程序/资源/公共/js/*

要使用应用程序/资源,您应该使用: "%kernel.root_dir%/Resources/assets/js/"

我开始使用 S2.8 并且有类似的问题(尚未全部解决)。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-03-14
    • 2012-02-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-12-20
    • 2019-10-06
    相关资源
    最近更新 更多