使用Symfony3

时间:2018-04-20 10:02:12

标签: symfony assets symfony-3.4

我正在用资产来解决问题。我的问题似乎很简单,但我无法找到解决方案。我搜索了谷歌和其他earch引擎,以及StackOverflox,Github。

我只想在树枝模板中使用资产功能。代码非常简单:

<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8" />
        <title>{% block title %}Welcome!{% endblock %}</title>
        {% block stylesheets %}{% endblock %}
        <link rel="stylesheet" href="{{ asset('css/bootstrap.min.css') }}" />
        <link rel="icon" type="image/x-icon" href="{{ asset('favicon.ico') }}" />
    </head>
    <body>
        {{ knp_menu_render('AppBundle:MenuBuilder:mainMenu') }}
        {% block body %}{% endblock %}
        {% block javascripts %}{% endblock %}
    </body>
</html>

我只想在我的应用中添加Bootstrap样式表。但是当我刷新页面时,样式表会出现500内部服务器错误。页面的其余部分显示但无法检索工作表。请求的URL是

  

http://arthur-dev.lyon-bercy.ratp:84/css/bootstrap.min.css

我的开发域名为http://arthur-dev.lyon-bercy.ratp:84/。所以在请求的URL中没什么奇怪的。但是不应该有app_dev.php的引用吗?当我手动请求http://arthur-dev.lyon-bercy.ratp:84/app_dev.php/css/bootstrap.min.css时,Symfony框架会喊出

  

&#34;未找到&#34; GET /css/bootstrap.min.css"

的路线

我已清除缓存,使用绝对路径或相对路径安装资产,符号链接或硬链接。没有解决我的问题。

我在Docker下使用Symfony3.4和Nginx以及PHP FPM 7.2。以下是确切的配置文件: config.yml:https://framabin.org/?771da57e9f933f5c#A9RmC/Ld0y8k7SZ5EoWCBkcjVF/VWHRO6+tT7d2e3/s= composer.json:https://framabin.org/?0a3e9ae8ec9ff32c#gmg7lnD3fAkAlBkX408yn8Jr4buuBEt1GosqvGggvm8=
composer.lock:https://framabin.org/?55a3c320d4e6ee9a#YB0fyupuUJL5SGYeZyJI/jGOf53HTd/xudExwCr9+N8=
docker-compose.yml:https://framabin.org/?0583b288a0b7c071#Z9ATFv8QYmfkTidC8F1xehzfM3SjOtW+rRgop9t6ddU=
PHP dockerfile:https://framabin.org/?dd514d9548b1545b#EEmexWzgNzE2W6ODktu5iB3QWATJGz+xZV7B73Fy2gI=
nginx dockerfile:https://framabin.org/?160536a41c6d857c#iK6w74WKm3Q2OKWSP/j6EPdePvc5avxqgqqX74VF91o=

有关信息,我尝试使用AsseticBundle,但我也遇到了问题:

  

在渲染模板期间抛出了异常(&#34;无法生成指定路线的URL&#34; _assetic_3d14251_0&#34;因为这样的路线不存在。&#34;)。< / p>

欢迎任何帮助

编辑:添加了config.yml文件的链接

1 个答案:

答案 0 :(得分:0)

我找到了解决问题的方法。我在这里给出答案 正如我在消息中提到的,我使用Docker来创建我的环境。它基于Maxpou的Symfony和Docker项目(https://github.com/maxpou/docker-symfony)。

该项目与Symfony 3.4不是最新的。所以有一些修正要做。我稍后会做一个PR,但是这里有解决方案的信息:只需在nginx级别的docker-compose.yml中添加以下行:

    volumes:
        - ${SYMFONY_APP_PATH}:/var/www/symfony

现在它看起来像是:

nginx:
    build: nginx
    ports:
        - 84:80
    volumes:
        - ${SYMFONY_APP_PATH}:/var/www/symfony

问题是Nginx无法访问包含资产的目录,因此它返回了404页面。现在,该文件可直接在Nginx中使用。