首页 文章

使用Symfony3的样式表的资产返回错误500

提问于
浏览
0

我正在质疑资产问题 . 我的问题似乎很简单,但我找不到解决方案 . 我搜索了谷歌和其他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框架会喊出来

“找不到”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,但我也遇到了问题:

在呈现模板期间抛出异常(“无法生成指定路由的URL”_assetic_3d14251_0“因为此类路由不存在 . ”) .

任何帮助都是最受欢迎的

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

1 回答

  • 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中使用 .

相关问题