我正在质疑资产问题 . 我的问题似乎很简单,但我找不到解决方案 . 我搜索了谷歌和其他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 回答
我找到了解决问题的方法 . 我在这里给出答案 .
正如我在消息中提到的,我使用Docker来创建我的环境 . 它基于Maxpou的Symfony和Docker项目(https://github.com/maxpou/docker-symfony) .
该项目与Symfony 3.4不是最新的 . 所以有一些修正要做 . 我将在稍后制作一个PR但是在这里获取解决方案的信息:只需在nginx级别的docker-compose.yml中添加以下行:
所以现在它看起来像这样:
问题是Nginx无法访问包含资产的目录,因此它返回了404页面 . 现在,该文件可直接在Nginx中使用 .