无法在Symfony 4上加载资产

时间:2019-03-01 13:36:50

标签: symfony twig assets

我在Symfony 4上使用Web应用程序遇到麻烦

我创建了一个树枝模板,并开始添加一些资产,在这种情况下,使用Js文件来完成功能。但是,当我进入浏览器时,Js文件未加载,出现404错误

Size=This field must be less than {max} characters long
NotNull=This field must be set.

这是我的树枝文件

No route found for \"GET /public/test.js
ymfony\\Component\\Routing\\Exception\\ResourceNotFoundException in /srv/sso-gateway/var/cache/dev/srcDevDebugProjectContainerUrlMatcher.php:50\nStack trace:\n#0 /srv/sso-gateway/vendor/symfony/routing/Matcher/UrlMatcher.php(107):

如您所见,有两个文件,分别是test.js(在/ public目录中)和app.css(在/ web目录中),它们都没有加载都抛出404错误,我不知道我在做什么错了。

我正在使用FosRestBundle,我不知道该错误是否与FosRest配置有关。

这里是我的FosRest配置

<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8" />
        <title>{% block title %}SSO - DIOCESAN!{% endblock %}</title>
        {% block stylesheets %}{% endblock %}
        <link rel="icon" type="image/x-icon" href="{{ asset('favicon.ico') }}" />
        <link rel="stylesheet" href="{{ asset('app.css') }}" />
        <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/css/bootstrap.min.css" integrity="sha384-Gn5384xqQ1aoWXA+058RXPxPg6fy4IWvTNh0E263XmFcJlSAwiGgFAW/dAiS6JXm" crossorigin="anonymous">
    </head>
    <body>
        {% block body %}{% endblock %}
        {% block javascripts %}
            <script src="../public/test.js"></script>
            {#<script src="{{ asset('assets/vendor/angular/angular.js') }}"></script>#}
        {% endblock %}
    </body>
</html>

有什么建议吗? 预先感谢。

1 个答案:

答案 0 :(得分:1)

您需要将所有资产都放在公共目录中,而不是Web中。

在这种情况下:

<script src="../public/test.js"></script> 

尝试为绝对网址添加此内容

编辑错误

<script src="{{ app.request.schemeAndHttpHost }}/test.js"></script>

对于资产案例,请检查此引用(或者您可以使用上一种情况下使用的相同方法):

Including Assets (CSS, JS) in Symfony 4 / Twig Template