Rails 7 使用 tailwindcss 没问题,使用 bootstrap 有个小 bug。
rails new blog --css bootstrap
#启动服务后,报:
The asset "application.css" is not present in the asset pipeline.
和
The asset "application.js" is not present in the asset pipeline.
这两个错是分别报的。
解决方法:需要在 package.json 插入编译代码:
# package.json 文件
{
"name": "app",
"private": "true",
"dependencies": {
"@hotwired/stimulus": "^3.0.1",
"@hotwired/turbo-rails": "^7.1.0",
"@popperjs/core": "^2.11.0",
"bootstrap": "^5.1.3",
"esbuild": "^0.14.5",
"sass": "^1.45.0"
},
"scripts": {
"build": "esbuild app/javascript/*.* --bundle --outdir=app/assets/builds",
"build:css": "sass ./app/assets/stylesheets/application.bootstrap.scss ./app/assets/build/application.css --no-source-map --load-path=node_modules"
}
}
使用命令行编译:
yarn build
# 生成 app/assset/builds/application.js
#application.html.erb 中 include_tag 找的就是这个文件
yarn build:css
# 生成 app/assets/build/application.css
# application.html.erb 中 link_tag 找的就是这个文件
不然,会报找不到这两个文件的错。
在 Procfile.dev 里是有这两行命令,但 new 脚本没有把 scripts 写到 package.json 里去。