1

我了解资产管道如何获取清单中所述的文件并预处理文件,将它们连接到一个文件中,然后压缩文件以加快下载速度。

在我的应用程序中,我有几个不同的部分,其中存在不同的依赖关系。

在我的资产中,我为这三个部分创建了三个目录:

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 文件,他们应该将其缓存,因此不需要再次下载。

所以我的问题是,我在组织文件的方式以及浏览器/服务器最小化下载的工作方式上是否有正确的理解?

如果没有,如果用户已经通过上一节下载了文件,是否有办法最小化文件的下载?

4

1 回答 1

0

你的理解似乎是正确的。当我到达这里时,您正在创建另外 3 个清单文件并在所有布局/部分中加载应用程序,因此当用户从第一部分/布局进入站点时应该下载您的 application.css 文件,并且它不应该再次发送请求。

虽然您可以确认您的环境资产配置,如资产调试和编译模式或缓存不应该是 null_store。

或者如果一切正常,那么您也可以检查浏览器设置缓存。就像在 chrome 中一样,您可以按 CTRL + SHIFT + I 然后在网络菜单中检查禁用的缓存选项。

希望你能得到一些帮助。

于 2019-06-20T16:12:08.190 回答