在服务器上放入Symfony2应用程序生产环境

时间:2017-10-15 14:26:14

标签: symfony symfony-2.3 symfony-2.7

他已经在本地服务器上的开发环境中创建了一个Symfony2应用程序,当我完成它时,我将它上传到服务器。在服务器上它显示正确,但它不检测.js和.css文件。我想问题来自我在开发环境中使用的Assetic。我已经看到在开发环境中你必须运行php app / console asetic: dump --env = prod --no-debug,但在我的免费托管中我无法运行命令行。

我的配置文件配置。 yml如下:

  # Assetic Configuration
assetic:
 debug:          "%kernel.debug%"
 use_controller: false
 bundles:        [ ]
 #java: /usr/bin/java
 filters:
    cssrewrite: ~
    #closure:
    #    jar: "%kernel.root_dir%/Resources/java/compiler.jar"
    #yui_css:
    #    jar: "%kernel.root_dir%/Resources/java/yuicompressor-2.4.7.jar"

这是我第一次部署这种类型的项目,所以我不太清楚如何做到这一点。你能告诉我必须采取哪些措施来解决这个问题吗?

提前致谢

修改

我的布局中有这个:

<link href="{{ asset('bundles/school/css/estilo.css') }}" rel="stylesheet" type="text/css" />
<link href="{{ asset('bundles/backend/js/jquery-ui/jquery-ui.css') }}" rel="stylesheet" type="text/css" />
<link href="{{ asset('bundles/school/js/e-calendar-master/css/jquery.e-calendar.css') }}" rel="stylesheet" type="text/css" />

...//some more

并且正在运行app/console asetic:dump --env=prod我只能得到这个:

Dumping all prod assets.
Debug mode is off.

寻找信息我见过这样的事情:

{% stylesheets

  'bundles/school/css/estilo.css'
  'bundles/backend/js/jquery-ui/jquery-ui.css'
  'bundles/school/js/e-calendar-master/css/jquery.e-calendar.css'
%}
   <link rel="stylesheet" href="{{ asset_url }}" />
{% endstylesheets %}

有了这个,我在web / css文件夹中创建一个.css文件

我可以解决一些问题吗?

1 个答案:

答案 0 :(得分:0)

首先需要将config.yml文件包列表添加到需要包含assetic的bundle param中:

assetic:
    debug:          "%kernel.debug%"
    use_controller: false
    bundles:        [ AppBundle, DesignBundle ],
    filters:
        cssrewrite: ~

然后你需要执行命令来生成文件:

bin/console assets:install
bin/console assetic:dump --env=prod

更新#2:

在twig模板中尝试使用类似的东西:

{% stylesheets filter='cssrewrite'
    'bundles/app/public/css/main.css'
    {# or #}
    '@AppBundle/Resources/public/css/main.css'
%}
<link rel="stylesheet" href="{{ asset_url }}" />
{% endstylesheets %}

和js

{% block javascripts %}
    {% javascripts
        'bundles/app/public/js/main.js'
        {# or #}
        '@AppBundle/Resources/public/js/main.js'
    %}
    <script type="text/javascript" src="{{ asset_url }}"></script>
    {% endjavascripts %}
{% endblock javascripts %}