Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/cocoa/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
symfony2捆绑包公共资源URL_Symfony_Assetic - Fatal编程技术网

symfony2捆绑包公共资源URL

symfony2捆绑包公共资源URL,symfony,assetic,Symfony,Assetic,我已经编写了一个包含公共资产的包:图像、CSS和Javascript。 所有内容都存储在my bundle Resources/public/文件夹中 我启动了一个ascetic命令,在全局web项目文件夹中生成符号链接 我的问题是我的包名在图像、CSS和Javascript URL中可见。 有没有办法重写此URL。 我想通过以下URL访问我的CSS: 第二个问题:直接在全局web项目文件夹中写入文件是一件好事吗?如果使用Symfony的内置命令资产:安装命令,它将更改: <script

我已经编写了一个包含公共资产的包:图像、CSS和Javascript。 所有内容都存储在my bundle Resources/public/文件夹中

我启动了一个ascetic命令,在全局web项目文件夹中生成符号链接

我的问题是我的包名在图像、CSS和Javascript URL中可见。 有没有办法重写此URL。 我想通过以下URL访问我的CSS:


第二个问题:直接在全局web项目文件夹中写入文件是一件好事吗?

如果使用
Symfony
的内置命令
资产:安装
命令,它将更改:

<script src="{{ asset('js/script.js') }}" type="text/javascript"></script>
进入(生产模式)


我想它解决了url中捆绑包名称的问题

至于将js文件直接放在主web文件夹中:这不是一个好主意,因为所有内容都应该是特定于包的,所有代码都放在包中,所以您的资产也应该放在包中


有关
assets:install
assetic:dump命令之间差异的其他说明,请查看答案
使用assetic。在细枝模板中使用:

{% stylesheets '@MyBundle/Resources/public/css/app.css'
        '@MyBundle/Resources/public/css/additional.css'
        output='mycss.css' %}
    <link rel="stylesheet" href="{{ asset_url }}" />
{% endstylesheets %}
您可以对图像进行相同的尝试:

assetic:
    assets:
        image-background:
            inputs: '@AppBundle/Resources/images/back.jpg'
            output: 'images/back.jpg'

在您的情况下(ascetic:dump),URL不正确,因为js文件名已更改。我认为这是为了避免文件名冲突。我真的很想知道:如果你的脚本名称不会被更改(
script.js
),你在更改任何内容时都会遇到问题-
script.js
将存储在用户浏览器的缓存中,并且在您更改任何内容后它不会刷新(因为名称是相同的),这很好,但是我应该如何处理背景图像URL呢?这些url存储在css文件中。我不能把任何{%}放在css文件中…你能在你的答案中展示一下这个例子,看看字体和图像是如何实际使用的吗?比如css文件或html文件等。。。
<script type="text/javascript" src="/js/as5s31l.js"></script>
{% stylesheets '@MyBundle/Resources/public/css/app.css'
        '@MyBundle/Resources/public/css/additional.css'
        output='mycss.css' %}
    <link rel="stylesheet" href="{{ asset_url }}" />
{% endstylesheets %}
assetic:
    assets:
        font-awesome-otf:
            inputs: '@AppBundle/Resources/fonts/FontAwesome.otf'
            output: 'fonts/FontAwesome.otf'
assetic:
    assets:
        image-background:
            inputs: '@AppBundle/Resources/images/back.jpg'
            output: 'images/back.jpg'