我记得好几年以前创建页面会自动创建一个对应的 css 文件,现在的版本怎么没有了
tailwind 确实很好用,但有时候 CSS 非常复杂,tailwind 涵盖不了,写全局又会导致 css 名很长去避免冲突
Rails 7 可以选择 sprockets 和 propshaft,Rails 8 默认是 propshaft。
对于 sprockets,确认 manifest.js 里面有:
//= link_directory ../stylesheets .css
那么 app/assets/stylesheets 里面的每个 .css 文件都会单独编译和提供。
app/assets/stylesheets
例如添加一个 app/assets/stylesheets/page.css,那么就可以使用 page.css
app/assets/stylesheets/page.css
page.css
在布局 app/views/layouts/application.html.erb 里面的 head 预留位置:
app/views/layouts/application.html.erb
<head> ... <%= yield :head %> </head>
然后在对应页面:
<% content_for :head do %> <%= stylesheet_link_tag "page" %> <% end %>
对于 propshaft,默认 app/assets/stylesheets 目录内的文件都会单独提供,从上面布局部分开始做就行。
试了一下 propshaft,js 代码的相对路径引用挂掉了,得换成 import map 的 pin_all_from 'app/javascript/src', under: 'src', to: 'src',不过改造之后所有的代码提示都没了,得整个 jsconfig 让 ide 识别 import map 的这个 alias
pin_all_from 'app/javascript/src', under: 'src', to: 'src'
{ "compilerOptions": { "baseUrl": "./app/javascript", "paths": { "src/*": ["src/*"] } } }