Symfony - 开发模式下的资产

Symfony - Assets in dev mode

我正在研究 symfony 教程和文档,这似乎暗示在开发模式下资源可用而无需安装资产,例如:

<link rel="stylesheet" href="{{ asset("bundles/yodauser/css/login.css") }}" />

我在开发模式下收到 404 错误,直到我实际 运行 assets:install 命令。

我做错了什么?

引用文档:

http://symfony.com/doc/current/book/templating.html#including-stylesheets-and-javascripts-in-twig

You can also include assets located in your bundles' Resources/public folder. You will need to run the php bin/console assets:install target [--symlink] command, which moves (or symlinks) files into the correct location. (target is by default "web").

<link href="{{ asset('bundles/acmedemo/css/contact.css') }}" rel="stylesheet" />

它应该可以工作,在我的情况下,有时可以,有时可以。 最坏的情况是您每次更新资产时都必须 运行 命令。

当您的服务器上不存在该文件时,将出现 404 错误!(未找到...)(W3 官方文档 here)。该文件不存在于您的目标文件夹中(或者您定位了错误的文件 ^^)...

您是否考虑过使用以下命令将您的资源加载到您的 web/ 文件夹中:

# make a hard copy of the assets in web/
$ php app/console assets:install

# if possible, make absolute symlinks in web/ if not, make a hard copy
$ php app/console assets:install --symlink

# if possible, make relative symlinks in web/ if not, make a hard copy
$ php app/console assets:install --symlink --relative

这是 SF2.6 上的一个新命令,您可以找到此命令文档的更多示例 here

您在官方 symfony 网站上有 all the documentation of assetics。 很少有关于最佳实践的想法 here.

此外,最好在您的 asset() 函数中使用 ' 字符:

<link rel="stylesheet" href="{{ asset('bundles/yodauser/css/login.css') }}" />