来自 URL 的 Symfony 转储资产
Symfony dump assets from URL
我有一个应用程序需要 URL 中的一些资产。我正在导入它们:
{% block stylesheets %}
{% stylesheets
'http://cdnjs.cloudflare.com/ajax/libs/foundicons/3.0.0/foundation-icons.css'
'bundles/bmatznerfoundation/css/foundation.min.css'
'bundles/arpanetkorepeteshop/css/*'
filter="cssrewrite"
%}
<link rel="stylesheet" type="text/css" href="{{ asset_url }}" />
{% endstylesheets %}
{% endblock %}
如果我抛售资产
php app/console assetic:dump
它下载源代码。但是如果源里面有一些导入,就不会下载了。
@font-face {
font-family: "foundation-icons";
src: url("http://cdnjs.cloudflare.com/ajax/libs/foundicons/3.0.0/foundation-icons.eot");
}
有办法全部下载吗?
简短版本:没有。解析用于导入的 CSS 文件(在本例中为外部字体文件)超出了 Assetic 之类的范围。如果您愿意深入研究代码并编写自己的代码,有很多方法可以连接到 Assetic,但是在这种情况下,我建议您自己下载字体图标包 - 毕竟您是在捆绑它你自己作为项目依赖。
不,CSS 在页面加载时被解析 ,因此浏览器将进行下载,而不是 assetic。但这里有一个建议:
除了将 URL 添加到所有样式表块之外,您还可以将它们定义为配置中的资产(在我的例子中是 YML),然后只在样式表块中包含您需要的资产。
# Assetic Configuration
...
...
assets:
foundation_icons:
inputs:
- //cdnjs.cloudflare.com/ajax/libs/foundicons/3.0.0/foundation-icons.css
output: css/foundation_icons.css
jquery:
inputs:
- %kernel.root_dir%/../vendor/jquery/jquery/jquery-2.1.3.js
- //ajax.googleapis.com/ajax/libs/jqueryui/1.11.1/jquery-ui.min.js
output: js/jquery.js
datatables:
inputs:
- //cdn.datatables.net/1.10.7/js/jquery.dataTables.min.js
output: js/datatables.js
然后在您的样式表块中,只需调用
{% stylesheets
'@foundation_icons'
'bundles/bmatznerfoundation/css/foundation.min.css'
'bundles/arpanetkorepeteshop/css/*'
%}
您现在可以在任何视图中加载@foundation_icons,而无需复制任何 URL。
我有一个应用程序需要 URL 中的一些资产。我正在导入它们:
{% block stylesheets %}
{% stylesheets
'http://cdnjs.cloudflare.com/ajax/libs/foundicons/3.0.0/foundation-icons.css'
'bundles/bmatznerfoundation/css/foundation.min.css'
'bundles/arpanetkorepeteshop/css/*'
filter="cssrewrite"
%}
<link rel="stylesheet" type="text/css" href="{{ asset_url }}" />
{% endstylesheets %}
{% endblock %}
如果我抛售资产
php app/console assetic:dump
它下载源代码。但是如果源里面有一些导入,就不会下载了。
@font-face {
font-family: "foundation-icons";
src: url("http://cdnjs.cloudflare.com/ajax/libs/foundicons/3.0.0/foundation-icons.eot");
}
有办法全部下载吗?
简短版本:没有。解析用于导入的 CSS 文件(在本例中为外部字体文件)超出了 Assetic 之类的范围。如果您愿意深入研究代码并编写自己的代码,有很多方法可以连接到 Assetic,但是在这种情况下,我建议您自己下载字体图标包 - 毕竟您是在捆绑它你自己作为项目依赖。
不,CSS 在页面加载时被解析 ,因此浏览器将进行下载,而不是 assetic。但这里有一个建议:
除了将 URL 添加到所有样式表块之外,您还可以将它们定义为配置中的资产(在我的例子中是 YML),然后只在样式表块中包含您需要的资产。
# Assetic Configuration
...
...
assets:
foundation_icons:
inputs:
- //cdnjs.cloudflare.com/ajax/libs/foundicons/3.0.0/foundation-icons.css
output: css/foundation_icons.css
jquery:
inputs:
- %kernel.root_dir%/../vendor/jquery/jquery/jquery-2.1.3.js
- //ajax.googleapis.com/ajax/libs/jqueryui/1.11.1/jquery-ui.min.js
output: js/jquery.js
datatables:
inputs:
- //cdn.datatables.net/1.10.7/js/jquery.dataTables.min.js
output: js/datatables.js
然后在您的样式表块中,只需调用
{% stylesheets
'@foundation_icons'
'bundles/bmatznerfoundation/css/foundation.min.css'
'bundles/arpanetkorepeteshop/css/*'
%}
您现在可以在任何视图中加载@foundation_icons,而无需复制任何 URL。