使用 Symfony3 的样式表的资产 returns 错误 500
Asset returns error 500 for a stylesheet with Symfony3
我遇到了资产问题。我的问题看起来很简单,但我找不到解决方案。我有搜索 Google 和其他搜索引擎,还有 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 样式sheet。但是当我刷新我的页面时,我得到一个 500 Internal Server Error for the stylesheet。页面的其余部分出现,但无法检索 sheet。请求的 URL 是
我的开发域是http://arthur-dev.lyon-bercy.ratp:84/. So nothing strange in the requested URL. But shouldn't there be a reference to app_dev.php? And when I manually request http://arthur-dev.lyon-bercy.ratp:84/app_dev.php/css/bootstrap.min.css,Symfony Framework 喊一个
"No route found for "GET /css/bootstrap.min.css"
我已经清除了缓存,安装了绝对路径或相对路径的资产,symlinked 或 hard linked。没有解决我的问题。
我在 docker 下使用带 Nginx 的 Symfony3.4 和 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 docker文件:https://framabin.org/?dd514d9548b1545b#EEmexWzgNzE2W6ODktu5iB3QWATJGz+xZV7B73Fy2gI=
nginx docker文件:https://framabin.org/?160536a41c6d857c#iK6w74WKm3Q2OKWSP/j6EPdePvc5avxqgqqX74VF91o=
有关信息,我尝试使用 AsseticBundle,但我也遇到了问题:
An exception has been thrown during the rendering of a template ("Unable to generate a URL for the named route "_assetic_3d14251_0" as such route does not exist.").
欢迎任何帮助
编辑:将 link 添加到 config.yml 文件
我找到了解决问题的方法。我在这里给出答案。
正如我在消息中提到的,我使用 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 中使用。
我遇到了资产问题。我的问题看起来很简单,但我找不到解决方案。我有搜索 Google 和其他搜索引擎,还有 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 样式sheet。但是当我刷新我的页面时,我得到一个 500 Internal Server Error for the stylesheet。页面的其余部分出现,但无法检索 sheet。请求的 URL 是
我的开发域是http://arthur-dev.lyon-bercy.ratp:84/. So nothing strange in the requested URL. But shouldn't there be a reference to app_dev.php? And when I manually request http://arthur-dev.lyon-bercy.ratp:84/app_dev.php/css/bootstrap.min.css,Symfony Framework 喊一个
"No route found for "GET /css/bootstrap.min.css"
我已经清除了缓存,安装了绝对路径或相对路径的资产,symlinked 或 hard linked。没有解决我的问题。
我在 docker 下使用带 Nginx 的 Symfony3.4 和 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 docker文件:https://framabin.org/?dd514d9548b1545b#EEmexWzgNzE2W6ODktu5iB3QWATJGz+xZV7B73Fy2gI=
nginx docker文件:https://framabin.org/?160536a41c6d857c#iK6w74WKm3Q2OKWSP/j6EPdePvc5avxqgqqX74VF91o=
有关信息,我尝试使用 AsseticBundle,但我也遇到了问题:
An exception has been thrown during the rendering of a template ("Unable to generate a URL for the named route "_assetic_3d14251_0" as such route does not exist.").
欢迎任何帮助
编辑:将 link 添加到 config.yml 文件
我找到了解决问题的方法。我在这里给出答案。
正如我在消息中提到的,我使用 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 中使用。