我有一个成功的开发环境,运行着webpacker,bootstrap和rails。这就是我导入引导程序的方式:
"bootstrap": "^4.3.1",
我有以下内容的app / javascript / packs / application.js:
import "bootstrap"
import "../stylesheets/application"
我正在将样式表导入app / javascript / packs / stylesheets:
@import "~bootstrap/scss/bootstrap";
@import "~easy-autocomplete/dist/easy-autocomplete";
@import "~easy-autocomplete/dist/easy-autocomplete.themes";
@import "autocomplete";
我无法使其在生产环境中工作,而是在ubuntu + nginx集中进行部署。
我正在运行rake资产:预编译,并且安装yarn似乎没有帮助:我的页面将在没有CSS等的情况下呈现。
答案 0 :(得分:0)
您要确保资产是从正确的目录提供的,可以通过以下服务器块中的nginx代码完成操作
location ^~ /assets/ {
gzip_static on;
expires max;
add_header Cache-Control public;
}
在编译资产后,确保root指向公用文件夹,并且其中包含资产文件夹。
答案 1 :(得分:0)
我有一个类似的问题,在我的特定情况下,aplication.css文件没有指纹,我需要为生产环境设置资产摘要以解决。如果您碰巧遇到相同的问题,下面将提供我的解决方案。
app / config / environments / production.rb
config.assets.digest = true
很遗憾,我无法解释为什么这样做是有必要的,因为根据Rails Docs,默认值是true。
默认情况下,开发和启用指纹功能 生产环境。您可以在自己的计算机中启用或禁用它 通过config.assets.digest选项进行配置。
我必须丢失一些东西,因为我不必将其显式设置为true,但是这样做解决了我的问题。