如何在 Symfony 5 中包含 CSS

How to include CSS in Symfony 5

我正在构建一个 Symfony 5 应用程序并想在我的 twig 模板中使用 CSS。我的样式表位于 public/css/styles.css 处,因此我尝试在我的 twig 模板中使用它 <link href="{{ asset('css/styles.css') }}" rel="stylesheet" type="text/css"/> 行。这在本地有效,但一旦我将它部署到 Google 云平台,服务器就无法再找到它。尝试查找样式表时,控制台显示 404 错误。 Symfony 要我把 css 文件放在哪里?

这感觉应该很简单,但我完全不知所措,觉得我错过了一些愚蠢的东西。该文档仅真正讨论了 Encore 并且在 twig 模板中使用单个 CSS 文件似乎有点矫枉过正。

(对不起,我不能发表评论,因为声誉低,所以我需要回答)

首先,您的 css 位置是正确的。此外,您的 link 标记的用法看起来不错。现在的问题是:正确的错误消息是什么,或者更好的是浏览器在哪里查看您的文件?

我认为浏览器希望从根目录而不是 public 文件夹中获取您的文件。如果您的回答是肯定的,那么您必须检查您的 .htaccess 文件 and/or linking 从 webspace 到 startfolder (public) 在这个原因。 它在本地主机上工作,因为 symfony 开发服务器为你完成了这项工作。

CSS 正常工作。我认为它是在告诉 app.yaml 将 css 放入 public 文件夹中。

handlers:
  - url: /css
    static_dir: public/css

然后我没有使用 asset() 函数加载,而是将 css 包含在:

<link href="/css/styles.css" rel="stylesheet" type="text/css"/>

这样,我在 public 本地的 css 文件夹在部署到 GCP 时被放入 public。