yev*_*evg 5 css php symfony twig symfony4
我正在学习Symfony并尝试在Symfony 4中设置样板应用程序
这个Symfony文档描述了如何在页面中包含资源,即使用这样的asset包.
<img src="{{ asset('images/logo.png') }}" alt="Symfony!" />
<link href="{{ asset('css/blog.css') }}" rel="stylesheet" />
Run Code Online (Sandbox Code Playgroud)
我已安装此软件包并尝试链接到我的/public目录中的css文件.
我知道Symfony建议将资源放在/assets根目录下的文件夹中,但如果可能的话我想避免这种情况.将资产放在公共目录中对我来说更有意义.
我的Twig基本模板如下:
<html>
<head>
<meta charset="UTF-8">
<title>{% block title %}Welcome!{% endblock %}</title>
{% block stylesheets %}
<link href="{{ asset('public/css/main.css') }}" rel="stylesheet" />
{% endblock %}
</head>
<body>
{% block body %}{% endblock %}
{% block javascripts %}{% endblock %}
</body>
<footer>footer</footer>
</html>
Run Code Online (Sandbox Code Playgroud)
问题
当我加载路径/页面/模板时,链接的css将呈现为来自根的简单链接(就像我将其链接为<link href="public/css/main.css" rel="stylesheet" />- 当然没有路由设置,public/*并且返回404/Not Found.
好像asset()甚至没有使用该功能.
我试过了
assets根目录上的文件夹,相应地调整链接asset包已安装(它是)问题
public/*路径是资产的文件系统路径,而不是URL路由,并成功包含我的资产?/assets根目录下的推荐文件夹以外的资产设置默认位置?sim*_*aun 15
asset函数中的路径应该与您的公共目录相关,而不是项目根目录.
所以,假装你的服务器的文档根是public_html和资产是public_html/css/main.css,资产的呼叫会{{ asset('css/main.css') }}.
附加说明:资产功能不允许您将资产放在公共目录之外.它们必须位于公共目录中.