我正在学习 Symfony 并尝试在 Symfony 4 中设置样板应用程序
这个 Symfony 文档 https://symfony.com/doc/current/templating.html描述如何在页面中包含资产,即使用asset
包像这样..
<img src="{{ asset('images/logo.png') }}" alt="Symfony!" />
<link href="{{ asset('css/blog.css') }}" rel="stylesheet" />
我已经安装了这个包并尝试链接到我的/public
目录。
我知道 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>
Problem
当我加载路线/页面/模板时,链接的CSS将呈现为来自根的简单链接(就好像我将其链接为<link href="public/css/main.css" rel="stylesheet" />
- 当然没有设置路线public/*
这返回404/Not Found
.
就好像asset()
甚至没有使用函数。
我试过了
- 重新启动我的本地 Symfony 服务器
- 将资产移动到
assets
根目录下的文件夹相应地调整链接
- 验证
asset
软件包已安装(是)
- 谷歌搜索这个问题(Symfony 4 没有任何内容)
问题
- 我怎样才能让 Symfony 知道
public/*
path 是资产的文件系统路径,而不是 URL 路由,并成功包含我的资产吗?
- 是否有这样的功能可以为推荐以外的资产设置默认位置
/assets
根目录下的文件夹?
中的路径asset
函数应该相对于您的公共目录,而不是项目根目录。
所以,假装你的服务器的文档根是public_html
,并且资产位于public_html/css/main.css
,资产调用将是{{ asset('css/main.css') }}
.
附加说明: asset 函数无法让您将 asset 放在公共目录之外。他们must位于公共目录中。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)