fkr/cssurlrewrite-bundle

此包已被弃用且不再维护。未建议替代包。

一个用于修复 Symfony 中 CSS 文档中所有 URL 路径的小型 assetic 过滤器

安装次数: 201,721

依赖者: 3

建议者: 0

安全: 0

星标: 33

关注者: 3

分支: 14

开放问题: 0

类型:symfony-bundle

v1.0.4 2016-08-21 19:17 UTC

This package is auto-updated.

Last update: 2023-04-28 03:41:53 UTC


README

一个用于修复 Symfony2 中 CSS 文档中所有 URL 路径的小型 assetic 过滤器。它还提供跨平台资源链接的便捷方式。

安装

引入供应商库

这可以通过三种不同的方式完成

方法 #1) 使用 composer

"require": {
    "fkr/cssurlrewrite-bundle": "*"
}

方法 #2) 使用 git 子模块

git submodule add git://github.com/fkrauthan/FkrCssURLRewriteBundle.git vendor/bundles/Fkr/CssURLRewriteBundle

方法 #3) 使用 deps 文件

[FkrCssURLRewriteBundle]
    git=git://github.com/fkrauthan/FkrCssURLRewriteBundle.git
	target=bundles/Fkr/CssURLRewriteBundle

注册 Fkr 命名空间

如果不使用 composer,请使用 Symfony 的自动加载器注册 Fkr 命名空间

// app/autoload.php
$loader->registerNamespaces(array(
    'Fkr' => __DIR__.'/../vendor/bundles',
    // your other namespaces
));

将 CssURLRewriteBundle 添加到您的应用程序内核中

// app/AppKernel.php
public function registerBundles()
{
    return array(
        // ...
        new Fkr\CssURLRewriteBundle\FkrCssURLRewriteBundle(),
        // ...
    );
}

配置

# app/config.yml
fkr_css_url_rewrite:
    rewrite_only_if_file_exists: true
    clear_urls: true
  • rewrite_only_if_file_exists: 如果为 true(默认)则仅在资源存在于 .../BundleFolder/Resources/public/ 文件夹中时重写 URL。
  • clear_urls: 如果为 true(默认)则对生成的 URL 进行规范化。例如,如果 URL 通常为 .../less/../img,则此选项将 .../img

使用方法

标准使用方法

例如,如果您将 CSS 文件放在

.../BundleFolder/Resources/public/css 

并且您的图像在

../BundleFolder/Resources/public/img

然后您的 CSS 文件中可能包含如下内容

background-image: url(../img/MyImageName.png)

现在您必须调用

app/console assets:install

现在如果您的模板中包含如下内容

{% stylesheets filter='css_url_rewrite,?yui_css' 
	'@BundleName/Resources/public/css/mycssfile.css'
%}
	<link rel="stylesheet" href="{{ asset_url }}" type="text/css" />
{% endstylesheets %}

现在过滤器将重写您的 CSS 文件中的 URL

background-image: url(../img/MyImageName.png) => background-image: url(../bundles/bundlename/css/../img/MyImageName.png)

一切正常工作。

扩展使用方法

您可以通过使用 @ 注解从其他包链接图像。例如,如果您的 CSS 文件中这样写

background-image: url(@BundleNameBundle/img/MyImageName.png)

现在过滤器将在您的 CSS 文件中重写此 URL

background-image: url(@BundleNameBundle/img/MyImageName.png) => background-image: url(../bundles/bundlename/img/MyImageName.png)

许可证

Resources/meta/LICENSE