带有参数的 symfony 路由上的 css/js 路径错误

Posted

技术标签:

【中文标题】带有参数的 symfony 路由上的 css/js 路径错误【英文标题】:Wrong path for css/js on symfony route with argument 【发布时间】:2020-09-25 06:02:49 【问题描述】:

我正在使用 symfony 4.4。 我有一个控制器,他有不同的路线......

其中一个在这样的参数上有一个标记:

/**
 * @Route("/activation/token", name="activation")
 */
public function activation(...

对于这条路线,只有这条路线,我的 css 没有加载,因为路径错误:

GET http://127.0.0.1:8000/activation/css/style.css net::ERR_ABORTED 404(未找到)

当我从路由中删除 thentoken 参数时,我的 css 已加载。

对于我的模板,我在 base.html.twig 上声明了这样的 css:

<link rel="stylesheet" type="text/css"  href=" asset('css/style.css')" />#

有人知道为什么资产函数会渲染动态路径吗?

【问题讨论】:

您的 html 中是否设置了基本 uri/路径?另外,您能检查一下输出html中的内容吗? (在浏览器中查看源代码) 尝试将您的 CSS 样式路径更改为 /css/style.css/css/activation.css,因为当前路径与您的控制器路由冲突。 @Leprechaun 根据文档,没有前导斜杠是正确的方法。我假设有一些基本路径/uri 的东西将它移动到另一个基本路径,因为它也只发生在这个页面上...... @Jakumi 在模板中一切都正确,我认为您需要检查资产配置 【参考方案1】:

您可以使用正则表达式为您的路由添加要求,该表达式将从令牌参数中排除 css 名称。

【讨论】:

以上是关于带有参数的 symfony 路由上的 css/js 路径错误的主要内容,如果未能解决你的问题,请参考以下文章

symfony2 上的 AJAX 跨域

带有变量内部路由的 Symfony 访问控制

symfony2 获取路由参数(控制器参数与请求)

Symfony:在其他功能中使用路由中的参数

Symfony:具有不同参数的多个路由,默认为空

Symfony 2.0 - 如何使用数组参数创建路由?