Assetic - 路线“_assetic_001d5b7_0”不存在
Posted
技术标签:
【中文标题】Assetic - 路线“_assetic_001d5b7_0”不存在【英文标题】:Assetic - Route "_assetic_001d5b7_0" does not exist 【发布时间】:2012-07-12 20:14:00 【问题描述】:这个问题似乎已被多次询问,但没有一个解决方案适合我。
我在我的 prod 环境中,这是我所做的:
在执行任何操作之前/之后清除缓存 尝试注释掉 config_dev 中的 _assetic 内容并确保它不在其他任何地方(这在 prod env 中并不重要) 将 use_controller 设置为 true 和 false(显然适用于 true 但不使用编译后的文件)我还有什么遗漏的吗?这些文件从
php app/console assetic:dump --env=prod --no-debug
文件名与错误中的文件名相匹配,减去路由内容。
【问题讨论】:
您是否在config.yml
中设置了bundles: [MyBundle, MyOtherBundle]
选项?您使用的是什么版本的 Assetic 和 AsseticBundle?
感谢您的回复。不,还没设置,它实现了什么?
Assetic 将仅搜索 bundles[]
中指定的捆绑包中的资产。
我的应用程序几乎完全是客户端,我的所有资产都链接在 app/resources/views/base.html.twig 中,我应该添加未列出任何捆绑包的捆绑包参数吗?
我不明白为什么它甚至试图在生产模式下加载路线。它不应该尝试加载静态文件吗?
【参考方案1】:
在这里尝试了所有建议的解决方案后,对我来说这只是模板名称的问题。我有.twig
但没有.html.twig
扩展名,仅此而已。
【讨论】:
【参考方案2】:在尝试覆盖我的 Twig 模板目录后,我在 Symfony 3.3 中遇到了这个问题。不知道如何解决这个问题,但现在恢复到默认模板目录配置解决了这个问题。
# config.yml
twig:
paths: ["%kernel.project_dir%/templates"] # Remove this line to use default dir
【讨论】:
【参考方案3】:就像@Marcus 所说,如果你尝试过:
php bin/console cache:clear
它没有帮助,请手动清除your_project_root/var/cache
文件夹(删除所有文件夹和文件)。如果您使用 unix/linux 系统,并且收到类似“错误删除文件:权限被拒绝”的系统消息,则需要先更改对 dir 的访问权限,例如可以使用控制台命令
sudo chmod -R 0777 /your_site_directory/var/cache/
然后你可以清除缓存目录。
【讨论】:
【参考方案4】:面临同样的问题,但原因是我将模板命名为“something.twig”,而不是“something.html.twig”。
不扫描扩展名中没有 .html 的模板似乎很重要。
结果 - 模板工作,但资产不执行转储/添加路由从它的资产。添加 .html 即可解决问题。
【讨论】:
【参考方案5】:使用哑字符(换行符、空格)更新 config.yml 可消除该错误。似乎通过这样做,我们强制重新生成缓存。 (Symfony 3.0.0)
【讨论】:
【参考方案6】:也许为时已晚,但是……什么对我有用:
php composer.phar install
php app/console cache:clear
php app/console cache:warmup
【讨论】:
【参考方案7】:也许你已经从 app/routing_dev.yml 中移除了资产路由
_assetic:
resource: .
type: assetic
【讨论】:
我不敢相信文档中没有提到它symfony.com/doc/current/assetic/asset_management.html【参考方案8】:如果清除缓存或转储资产不起作用。试试noisebleed 的评论:
// app/config_dev.yml
assetic:
use_controller: true
bundles: ['FooBarBundle']
【讨论】:
我遇到了这个问题,是因为在 bundles 数组中没有包含我的包。【参考方案9】:我在一分钟前遇到了这个问题。清理缓存对我有用:
app/console cache:clear --env=prod
希望这会有所帮助。
【讨论】:
不,不起作用,这是我尝试的第一件事。不过感谢您的回答,我无法解决它,所以我停止使用资产并设置了一个 grunt 脚本来编译我的所有文件。 IME basic "rm -rf app/cache" 似乎比 cache:clear 或 ot:cc app/console 命令更可靠。 @Marcus,谢谢我已经使用控制台命令多次删除了缓存,但问题仍然存在,“rm -rf”成功了!!!以上是关于Assetic - 路线“_assetic_001d5b7_0”不存在的主要内容,如果未能解决你的问题,请参考以下文章
rbenv 权限在 Ubuntu 上被 Assetic 拒绝