使用 Symfony 的 LESS 中的资产路径
Assets paths in LESS using Symfony
使用 Symfony2 和 LESS,我很难找到导入资产的好方法。例如,如果我想在位于 @bundle/Resources/public/css/file.less
的 LESS 文件中导入资产,并且资产位于:/web/assets/vendor/foo/bar.less
(将 /
视为项目根目录)。
使用 ../../../../../../web/assets/vendor/foo/bar
可以,但不是很漂亮。 /web/assets/vendor/foo/bar
也不起作用,因为 LESS 不知道项目所在的位置。
有没有比上面更漂亮的解决方案?
不是直接的解决方案,但可能是一些启发:
我正在使用 assetic 过滤器和 sass,下面的配置运行良好
assetic:
filters:
scss:
load_paths:
- '%kernel.root_dir%/some/scss_path'
- '%kernel.root_dir%/some-other/scss_path'
如果您手动编译 less,还有 --include-path 选项:
$ lessc styles.less --inlude-path="/web/assets/vendor/foo"
你在使用 less.js 吗?在生产中推荐使用预编译css。我认为 assetic 是正确的解决方案,特别是如果您使用的是 symfony。当您处于开发模式时,它可以在运行时编译您的 less,然后可以简单地使用 assetic:dump
为生产模式编译您的所有 less。
我通过切换到 Less.php 解决了这个问题,然后在我的 config.yml
中指定了一个 path
。完整示例:
#config.yml
assetic:
filters:
lessphp:
apply_to: "\.less$"
paths:
- "%kernel.root_dir%/../web"
这使得使用例如:
成为可能
@import 'assets/vendor/foo/bar';
使用 Symfony2 和 LESS,我很难找到导入资产的好方法。例如,如果我想在位于 @bundle/Resources/public/css/file.less
的 LESS 文件中导入资产,并且资产位于:/web/assets/vendor/foo/bar.less
(将 /
视为项目根目录)。
使用 ../../../../../../web/assets/vendor/foo/bar
可以,但不是很漂亮。 /web/assets/vendor/foo/bar
也不起作用,因为 LESS 不知道项目所在的位置。
有没有比上面更漂亮的解决方案?
不是直接的解决方案,但可能是一些启发:
我正在使用 assetic 过滤器和 sass,下面的配置运行良好
assetic:
filters:
scss:
load_paths:
- '%kernel.root_dir%/some/scss_path'
- '%kernel.root_dir%/some-other/scss_path'
如果您手动编译 less,还有 --include-path 选项:
$ lessc styles.less --inlude-path="/web/assets/vendor/foo"
你在使用 less.js 吗?在生产中推荐使用预编译css。我认为 assetic 是正确的解决方案,特别是如果您使用的是 symfony。当您处于开发模式时,它可以在运行时编译您的 less,然后可以简单地使用 assetic:dump
为生产模式编译您的所有 less。
我通过切换到 Less.php 解决了这个问题,然后在我的 config.yml
中指定了一个 path
。完整示例:
#config.yml
assetic:
filters:
lessphp:
apply_to: "\.less$"
paths:
- "%kernel.root_dir%/../web"
这使得使用例如:
成为可能@import 'assets/vendor/foo/bar';