- objective-c - iOS 5 : Can you override UIAppearance customisations in specific classes?
- iphone - 如何将 CGFontRef 转换为 UIFont?
- ios - 以编程方式关闭标记的信息窗口 google maps iOS
- ios - Xcode 5 - 尝试验证存档时出现 "No application records were found"
您好,我在 symfony 3 中使用 assetic。但是我有问题,我的 Assets 是这样定义的:
{% stylesheets filter='cssrewrite' filter='?uglifycss'
'assets/font-awesome-4.6.3/css/font-awesome.min.css'
'assets/bootstrap-3.3.7/css/bootstrap.min.css'
...
%}
在控制台运行php bin/console assetic:watch
更改 css 或 js 后,它将生成新文件,但名称相同,例如 ce9c2ef.css
.
但这是个问题,因为在部署后,css 文件更改了内容但没有文件名,所以所有人都看到旧的 css...
问:如何在每次更改 css 时更改生成的文件名?
{% stylesheets %} 中有选项 'output='path/filename.js' 但我无法添加 <?php echo $var; ?>
或 {{ var }}
...
更新:
Assets 配置:
assetic:
debug: '%kernel.debug%'
use_controller: '%kernel.debug%'
filters:
cssrewrite: ~
uglifyjs2:
bin: "%kernel.root_dir%/Resources/node_modules/uglify-js/bin/uglifyjs"
uglifycss:
bin: "%kernel.root_dir%/Resources/node_modules/uglifycss/uglifycss"
模板配置:
templating:
engines: ['twig']
所以我找到了部分解决方案:
配置添加:
assetic:
workers:
cache_busting: ~
之后,您的文件将看起来像 ce9c2ef-d1e35a0_filename.css
在开发和ce9c2ef-d1e35a0.css
在生产中...
但是在部署中你必须首先清除缓存所以你首先有 2 个哈希 ce9c2ef
还是一样(我不明白存在的意义)和第二d1e35a0
正在发生变化,因此它最终解决了浏览器缓存问题....
但是如果你在 css 中进行更改,assetic:watch 会编译它,但是页面加载旧文件...!
有史以来最糟糕的 bundle 我的意思是更改文件名是基本的事情,在互联网上有很多解决方法,我一天又一天地尝试,直到我终于成功...
最佳答案
当您使用 assetic 时,解决问题的一种方法是在 app/config.yml 的 framework:templating
部分为您的 Assets 提供一个版本:
assets:
version: "%application_version%"
然后您可以在parameters.yml/parameters.yml.dist 文件中指定您的版本:
parameters:
application_version: 1.0.1
然后您可以像这样加载您的样式表或 javascript:
{% stylesheets output='css/sites.css' filter='cssrewrite'
'assets/font-awesome-4.6.3/css/font-awesome.min.css'
'assets/bootstrap-3.3.7/css/bootstrap.min.css'
...
%}
<link href="{{ asset_url }}" type="text/css" rel="stylesheet" media="all" />
{% endstylesheets %}
现在,当您转储 Assets 时,它会自动将 ?1.0.1
(或您使用的任何版本)附加到它们的末尾。例如,在生产中您会看到以下内容:
<link href="/css/site.css?1.0.1" type="text/css" rel="stylesheet" media="all" />
请注意,命名策略有不同的方法,如果您在每次更改 Assets 时忘记更新 Assets 版本,这可能会变得棘手,但有一些方法可以改进该策略。不过,这应该能让您启动并运行。
如果您注意到我没有手动指定 uglify*
过滤器 - 您可以通过将其放入您的 app/config_prod.yml 来自动应用这些过滤器:
assetic:
filters:
uglifycss:
apply_to: "\.css$"
uglifyjs2:
apply_to: "\.js$"
关于javascript - Assetic 并在每次更改时生成新文件名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45960744/
是否可以仅在点击 anchor 时为其分配 url? Token Link 当点击 anchor 时,它将转到 http://example.com/token=xxxxx/ 我只想在单击时生成 to
我不能 100% 确定我的错误。当我尝试生成 PDF 时,我得到了此编码输出: %PDF-1.4 %���� 3 0 obj <> /Contents 4 0 R>> endobj 4 0 obj <
下面的代码有几个函数,这些函数允许诸如将数据写入文档、读取文档以及将数据放入数组中以用于稍后的 JTable 等操作。 package tabletest.populatetable; import
我检查了我的网站 (WordPress) 应用程序的页面源并发现了以下内容 <iframe src="https://www.google.com/recaptcha
我有一个最终会生成 OutOfMemory 的程序。程序代码为: public class VeryLargeObject implements Serializable { public s
所以我正在构建一个博客引擎,它具有/articles/then-the-article-permalink 作为 URL 结构。我需要有 prev 和 next 链接,它们将通过 pub_date 跳
我有这个列表: string[] countries = { "USA", "CANADA" }; 当我运行这个查询时: query = (from user
我有一个将 InputStream 作为 InputStreamResource 返回的方法,当我让 swagger 生成文档时,它说返回类型是 InputStreamResource。如何更改此设置
令人惊讶的是,我找不到关于这个主题的任何内容。当在 EditText 中检测到“@”时,动态生成 ListView 的方法是什么。这是一个例子: 这是我目前所拥有的: textfield.setOn
我发现 Menhir 提供了 --dump 和 --explain 选项,它对调试有很大帮助。但是如何在 ocamlbuild 下启用这些选项,以便 Menhir 在编译时始终生成转储文件? 我尝试编
您好,我正在寻找使用 ajax 提交表单时在 codeigniter 中重新生成 csrf token 的过程。我希望在不刷新页面的情况下重新生成 token 。有没有办法做到这一点。 最佳答案 根据
int main(void) { float a; scanf("%f", &a); double c = sqrt(a); printf("%f", c);
我有看起来像这样的 Hibernate 实体(省略了 getter 和 setter): @Entity public class EntityA { @ManyToOne(fetch = F
我正在使用 git 来跟踪 wireshark project .我想提交一个补丁,但是所需的格式是以下输出(参见 http://www.wireshark.org/develop.html ): s
Spring 最近发布的关于在 Spring Boot 项目中使用静态 Web 内容的博文 (https://spring.io/blog/2013/12/19/serving-static-web-
我正在尝试设置我的测试环境,其中包括 React 测试库、Redux 工具包、RTK 查询和 TypeScript,但我遇到了一个我无法解决的问题。 我想不通的主要问题是如何生成 AppDispatc
我正在尝试将使用 Microsoft Access 数据库的网站移植到 MySQL。首先,我尝试打开 SQL 数据库: (旧)访问代码是: Set cn = Server.CreateObject (
我正在运行一个基本上从 Twitter 中提取推文的 Flask 应用程序。虽然使用嵌入式 Flask 服务器运行应用程序没有问题,但在 gUnicorn 中运行时我收到重复的推文,主要是因为我有 2
我正在学习 Python-这给了我一个 IO 错误- f = open('money.txt') while True: currentmoney = float(f.readline())
我想生成 N 个随机点,其乘积为某个值 1。 我在 MATALB 中是这样做的: N_=10; x1_=rand(1, N_); p_=prod(x1_); x_=x1_; x_(end)=x1_(e
我是一名优秀的程序员,十分优秀!