如标题中所述,我在资产中的js / css / images不会产生prod
我把它们全部放在base.html.twig中,就像这样
{% block stylesheets %}
{% stylesheets
'@BlubirdCrmBundle/Resources/public/css/bootstrap.min.css'
'@BlubirdCrmBundle/Resources/public/css/bootstrap-theme.min.css'
'@BlubirdCrmBundle/Resources/public/css/bbgrid.css'
....
output='css/compiled/all.css' %}
<link rel="stylesheet" href="{{ asset_url }}" />
{% endstylesheets %}
{% endblock %}
{% javascripts
'@BlubirdCrmBundle/Resources/public/js/jquery-2.1.3.min.js'
'@BlubirdCrmBundle/Resources/public/js/bootstrap.min.js'
....
output='js/compiled/all.js' %}
<script src="{{ asset_url }}"></script>
{% endjavascripts %}
和我的图片:
{% image '@BlubirdCrmBundle/Resources/public/images/loadingSpinner.gif' %}<img id="spinner" src="{{ asset_url }}"/>{% endimage %}
开发中的一切正常
ut in prod它不会生成我随时添加的新js和图像。
在我的应用程序中,我的内核生成如下:
$kernel = new AppKernel('prod', false);
在有人告诉我之前
./console cache:clear --env=prod --no-debug
./console assetic:dump --env=prod --no-debug
我无法使用我的ovh服务器访问控制台,因此我必须在服务器上手动连接并删除缓存中的文件
我试图删除/ web文件中的旧编译文件,但没有生成任何内容......
没有控制台如何做到这一点的任何想法?
谢谢!
答案 0 :(得分:2)
您需要找到一种方法来执行此操作:
./console assetic:dump --env=prod --no-debug
在开发模式下,资产通过控制器链接到资产。 Controller找到合适的资产,必要时构建它并传递给浏览器。这就是它在开发模式下工作的原因。
在产品模式下,这种方法太慢,因此资产需要预先生成文件,因此可以静态提供。这就是为什么你需要找到一种执行该命令的方法。
如果无法在服务器上运行控制台命令,则可以在开发服务器上生成生产资产,将文件添加到源控件,然后将其与其余代码一起部署。
有点偏离主题,但资产通常被替换为更受欢迎和框架独立的前端工具,如gulp。默认情况下,Assetic不再与symfony 3捆绑在一起。尽管几个月前它在symfony docs中被描述为“最佳实践”。