You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Rails 7 出现/stylesheets/application路由RoutingError报错如何修复

Rails 7 引入Bootstrap后样式路由报错修复

问题表现

在/app/assets/stylesheets/application.scss中添加@import "bootstrap";引入语句后,项目功能运行正常,但持续抛出以下错误:

ActionController::RoutingError (No route matches [GET] "/stylesheets/application"):

根因

该错误本质是Rails 7资产路径解析异常,通常由静态写死样式引入路径、资产清单配置缺失、预编译配置不匹配三类原因导致。

修复方案

按顺序排查以下配置项即可解决:

  • 检查布局文件的样式引入标签
    打开app/views/layouts/application.html.erb,禁止直接写死静态资源路径,必须使用Rails内置的资产辅助方法渲染标签:
    错误写法:
    <link rel="stylesheet" href="/stylesheets/application">
    
    正确写法:
    <%= stylesheet_link_tag "application", "data-turbo-track": "reload" %>
    
  • 补全资产清单配置
    打开app/assets/config/manifest.js,确认存在样式目录的关联声明,缺失则直接补全:
    //= link_tree ../images
    //= link_tree ../builds
    //= link_directory ../stylesheets .css
    
  • 校验Bootstrap安装与预编译配置
    如果使用cssbundling-rails管理前端依赖,先执行命令安装正确的Bootstrap依赖:
    yarn add bootstrap @popperjs/core
    
    之后清除旧的缓存资产,重启服务即可:
    rails assets:clobber
    rails server
    
  • 适配Propshaft资产处理器配置
    如果项目使用Propshaft替代默认Sprockets,需要在config/initializers/assets.rb中添加scss文件预编译声明:
    Rails.application.config.assets.precompile += %w( application.scss )
    

内容的提问来源于stack exchange,提问作者MimiValsi

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.28 14:06:29