2016-11-18 97 views
0

我在这里看到类似的问题,但没有一个不适合我。 此外,这些是旧的symfony2版本(不同参数)的旧问题。这也可以在symfony3中发生。Symfony2.8资产 - 资产版本不适用于网址


我需要查询版本参数到我的生产JS和CSS资产,以避免使用旧文件。 (由用户OFC)现在产生的资产看起来是这样的:

<script type="text/javascript" src="/js/56a0cb5.js"></script> 

在我的模板:

{% javascripts '@XBundle/Resources/public/js/jquery-1.9.1.min.js' 
       '@XBundle/Resources/public/js/ga.js' 
       '@XBundle/Resources/public/js/somejs.min.js' 
       '@XBundle/Resources/public/js/main.js' %} 
    <script type="text/javascript" src="{{ asset_url }}"></script> 
{% endjavascripts %} 

而且现在我也加入到配置文件中according to documentation一些行:

framework: 
    assets: 
     version: 'v2' 
     version_format: '%%s?ver=%%s' 

但仍然我的资产网址看起来一样。

我该如何做到这一点?

<script type="text/javascript" src="/js/56a0cb5.js?ver=v2"></script> 

谢谢

+0

有你清零督促ENV缓存? – DOZ

+0

是的,清除设备缓存,prod缓存和转储资产 - 我认为一切... – Griva

回答

0

你可以在这样的框架模板部分声明版本:

framework: 
    templating: 
     engines: ['twig'] 
     packages: 
      js: 
       version: 'v2' 
       version_format: '%%s?version=%%s' 

模板:

{% javascripts '@XBundle/Resources/public/js/jquery-1.9.1.min.js' 
      '@XBundle/Resources/public/js/ga.js' 
      '@XBundle/Resources/public/js/somejs.min.js' 
      '@XBundle/Resources/public/js/main.js' package='js' %} 
<script type="text/javascript" src="{{ asset_url }}"></script> 
{% endjavascripts %} 
+0

如何'包'工作 - 任何文档?以及为什么我的文档提到“资产”而不是模板 - 差异在哪里? – Griva

+0

从这里摘录:http://symfony.com/blog/new-in-symfony-2-7-the-new-asset-component 而这里:http://stackoverflow.com/questions/17795200/symfony2- assets-versioning-by-file 这将工作到Symfony 3.0,你的代码看起来很好。它应该工作。 – panche14

+0

不幸的是,这不起作用:(你的例子是针对Symfony 2.6或更低版本的。此外,我检查了链接,并尝试了更新的版本 - 使用资产属性,但仍然没有任何结果。 – Griva