Rails 预编译 index.html.erb

Rails precompile index.html.erb

我有 app/assets/index.html.erb 包含 <%= 'Hello world!' %>,并将 require "sprockets/railtie" 添加到 config/application.rb 但是当我 运行 rake assets:precompile (RAILS_ENV=development) public/assets 保持为空。 我错过了什么? 我也在使用 webpacker 并且最初没有使用 sprockets

视图不是资产。每次 rails 处理 HTTP 请求时,您的视图模板(erb、slim 等)将被编译和呈现。详细了解 Rails 次浏览 here

Assets 仅包含 css、js、字体、图像等。如果 assets 文件夹中没有任何资产文件,则 "rake assets:precompile" 将不执行任何操作。有关资产管道的更多信息 here

UPD. May be this solution helps for you.

UPD2.

  1. 我用 <%= "Hello, world!"%> 创建了文件 assets/html/index.html.erb
  2. 我在我的 config/application.rb 中添加了后续行:
config.assets.precompile = ['*.js', '*.css', '*.html.erb']
  1. 我在我的 manifest.js
  2. 中添加了后续行
//= link_directory ../html .html
  1. 我运行 rake assets:precompile 看看:
...
I, [2019-03-31T13:56:28.979563 #50803]  INFO -- : Writing rails_app/public/assets/index-f4e7c3b6ac0beff671efa8cf84639011c06e58ca53a78d83f36107316cec125f.html
I, [2019-03-31T13:56:28.979832 #50803]  INFO -- : Writing rails_app/public/assets/index-f4e7c3b6ac0beff671efa8cf84639011c06e58ca53a78d83f36107316cec125f.html.gz
...
  1. 我打开编译好的文件看到"Hello, world"