【问题标题】:Symfony assetic doesn't workSymfony 资产不起作用
【发布时间】:2015-11-13 21:53:51
【问题描述】:

这是我的文件,它们被配置为使每件事情都能正常运行(但它不是)。我做了一个缓存清除,php app/console assests:intall web,没什么新鲜的。总是收到此错误消息:Cannot load resource "."

app/config.php

twig:
  paths:
    "%kernel.root_dir%/../src/Acme/TestBundle": AcmeTestBundle
assetic:
  debug:          "%kernel.debug%"
  use_controller: false
  bundles:        [AcmeTestBundle]

app/config_dev.php

assetic:
  use_controller: false

app/routing_dev.php

_assetic:
  resource: .
  type:     assetic

src/Acme/TestBundle/Resources/views/Default/index.html.twig

{% javascripts '@AcmeTestBundle/Resources/public/js/main.js'  %}
  <script src="{{ asset_url }}"></script>
{% endjavascripts %}

src/Acme/TestBundle/Resources/public/js/main.js

console.log('hello');

有谁知道我是否在配置或我的树枝文件中遗漏了某些东西以使路线最终可以找到:P?谢谢各位。

【问题讨论】:

  • 您使用的是哪个版本的Symfony?尝试从routing_dev 中删除_assetic 条目(我认为这个选项已被删除)
  • 使用assetic:dump --env=prod
  • 我使用 symfony 2.7.5,并且命令资产转储有效,但是如果我不想每次更改文件时都执行此命令:$
  • 顺便说一句,assets:的所有命令都与苦行无关。

标签: php symfony assetic


【解决方案1】:

尝试这样配置:

1- 将您的资源放在“公共”文件夹中,位于:

 YourBundle/Resources/config/public/css
 YourBundle/Resources/config/public/js
 YourBundle/Resources/config/public/images
 YourBundle/Resources/config/public/fonts

2- 在一些项目中,我使用 Yuicompressor for Assetic,(Yuicompressor 2.4.7 在 windows 平台上运行良好)并将 yuicompressor-2.4.7.jar 放入:

app/Resources/java/yuicompressor-2.4.7.jar

重要提示: yuicompressors 需要 java 运行环境 1.7,通常安装在 C:\Program Files (x86)\Java\jre7\bin (Win64Bits)

3- 设置config.yml

...
assetic:
    debug:            "%kernel.debug%"
    use_controller:   false
    bundles:          [ ]
    java:             "C:/Program Files (x86)/Java/jre7/bin/java.exe"
    filters:
        cssrewrite: ~
        #closure:
        #    jar: "%kernel.root_dir%/Resources/java/compiler.jar"
        yui_css:
           jar:   "%kernel.root_dir%/Resources/java/yuicompressor-2.4.7.jar"
        yui_js:
           jar:   "%kernel.root_dir%/Resources/java/yuicompressor-2.4.7.jar"
...

4- 在模板树枝中使用样式表和 javascripts 块

对于您可以使用的 css 文件:

{% stylesheets      
    'bundles/app/css/styles.css'
    'bundles/app/css/others.css'
    filter='?yui_css, cssrewrite'
    output='css/common-stylesheets.css' %}
    <link href="{{ asset_url }}" rel="stylesheet" />
{% endstylesheets %}

对于您的 javascripts 文件,您可以使用:

{% javascripts           
    '@AppBundle/Resources/public/js/myApp.js'
    '@AppBundle/Resources/public/js/otherFiles.js'

    filter='?yui_js'
    output='js/common-javascripts.js' %}
    <script src="{{ asset_url }}" type="text/javascript"></script>
{% endjavascripts %}

5- 运行 Symfony 的命令

app/console cache:clear
app/console cache:clear --env=prod
app/console assets:install web
app/console assetic:dump
app/console assetic:dump --env=prod

6- 检查创建的文件

如果你进入你的 symfony 项目中的 web 文件夹,你可以看到下一个文件:

web/css/common-stylesheets.css
web/javascript/common-javascripts.js

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-02-06
    • 1970-01-01
    • 1970-01-01
    • 2013-10-19
    • 2017-11-23
    • 1970-01-01
    相关资源
    最近更新 更多