我在用:
{{ asset('contact') }} (e.g.)
为我的联系页面生成 URL,该 URL 输出:
http://localhost.project/contact.
但我在开发环境中。
如何为开发环境制作资产显示网址?
应该是:
http://localhost.project/web/app_dev.php/contact
不是
http://localhost.project/web/contact
您应该使用{{ path('your_route') }}
来生成 URL。这将为开发环境生成适当的 URL。
如果您使用的是 Symfony 2.3,您可以在 config.yml 文件中设置 assets_base_url。我处理这个问题的方法是在我的 parameter.yml 文件中添加一个 %domain% 变量,并有一个用于生产,一个用于开发。这样,资产就会按照您的建议加载正确的 url。
将以下内容添加到框架 -> 模板下的配置文件中
//app/config/config.yml
framework:
templating:
assets_base_url: %domain%
然后在你的parameters.yml中:
//app/config/parameters.yml - Dev environment
parameters:
domain: 'http://localhost.project/web/'
然后,对于您的生产环境,您将需要您的 parameters.yml 有所不同并拥有您计划使用的域。
当您使用 twig 资产功能时,使用此设置,它将预先设置您想要的基本 url。
{{ asset('contact') }}
会变成:
http://localhost.project/web/contact
话虽如此。资产是图像、css、javascript、字体等。如果您尝试在应用程序中创建一个页面的 url,那么您需要使用 twig path 函数。
{{ path('route.name') }}
这使用您在 routing.yml 中定义的 symfony 的路由名称来为您请求的页面生成 url。