【问题标题】:What are public/packs and public/packs-test for?public/packs 和 public/packs-test 有什么用?
【发布时间】:2018-01-30 01:49:52
【问题描述】:

当使用 webpackwebpacker gem 和 Rails 5.1 时,我注意到第一次运行 rspec 会生成 public/ packspublic/packs-test

  • 这些目录有什么用?
  • 两者有什么区别?
  • 是否应该通过版本控制对其进行跟踪?

【问题讨论】:

    标签: ruby-on-rails webpack


    【解决方案1】:

    Rails 中的/public 文件夹是预编译资源用于静态分发的位置(也就是在服务器启动时编译一次,因此它们不会在每次页面加载时都编译)。这是Rails asset pipeline 的一项功能,可帮助加快资产分发速度,因此 Rails 不必自己为它们服务。

    注意webpacker 资产如何放置在/app/assets 目录中的packs 文件夹中。这些包将被预编译并放置到/public/packs 文件夹中,这些预编译包将在页面请求期间从中获取和提供服务。

    /public/packs-test 文件夹是测试环境包将被预编译到的位置。您可以在 config/webpacker.yml 文件中配置每个环境的预编译包的位置。


    至于是否通过版本控制来跟踪这些文件,这取决于您 — 通常在部署到生产环境时需要做什么是后勤问题。来自官方 Ruby on Rails 指南:

    您可能希望在本地预编译资产有几个原因。其中有:

    • 您可能没有生产文件系统的写入权限。
    • 您可能要部署到多个服务器,并希望避免重复工作。
    • 您可能经常进行不包括资产更改的部署。

    本地编译允许您将编译后的文件提交到源代码管理中,并正常部署。

    See the official Ruby on Rails Guide section 4.2 on Local Precompilation 了解更多原因(或为什么不)您想要预编译并将生成的文件提交到版本控制中。

    【讨论】:

      猜你喜欢
      • 2021-04-27
      • 2019-06-07
      • 2020-03-28
      • 1970-01-01
      • 1970-01-01
      • 2021-05-30
      • 1970-01-01
      • 1970-01-01
      • 2021-09-23
      相关资源
      最近更新 更多