我了解资产管道如何获取清单中所述的文件并预处理文件,将它们连接到一个文件中,然后压缩文件以加快下载速度。
在我的应用程序中,我有几个不同的部分,其中存在不同的依赖关系。
在我的资产中,我为这三个部分创建了三个目录:
stylesheets
application.scss -manifest for common elements such as bootstrap
proofreaders
index.scss -manifest file for this section
p_dashboard.scss
clients
index.scss -manifest file for this section
c_dashboard.scss
frontend
index.scss -manifest file for this section
custom.scss
我已将文件添加到我的 config/initializeres/assets.rb 文件中:
Rails.application.config.assets.precompile += %w(proofreaders/index.css clients/index.scss frontend/index.scss)
这是我的 application.scss 清单文件中的示例:
@import "bootstrap";
@import "font-awesome";
@import "fonts";
@import "variables";
@import "utilities";
@import "bootstrap-overrides";
@import "animations";
@import "custom";
在我的校对者布局文件中,我有以下内容:
doctype html
html
head
meta content=("text/html; charset=UTF-8") http-equiv="Content-Type" /
title Dashboard
= csrf_meta_tags
= stylesheet_link_tag 'application', 'proofreaders', media: 'all', 'data-turbolinks-track': 'reload'
这个想法是,当用户第一次通过前端部分进入站点时,他们将下载 application.css 压缩文件和 frontend.css 压缩文件。
然后,如果他们进入另一个部分,比如校对部分,因为他们已经下载了 application.css 文件,他们应该将其缓存,因此不需要再次下载。
所以我的问题是,我在组织文件的方式以及浏览器/服务器最小化下载的工作方式上是否有正确的理解?
如果没有,如果用户已经通过上一节下载了文件,是否有办法最小化文件的下载?