Syd*_*ney 7 css ruby-on-rails sass
我对Rails相对较新,我正在尝试在开发环境中使用资产管道SCSS.但是,在我创建控制器,视图和css.scss文件后,我遇到以下错误:
Sprockets::Rails::Helper::AssetNotPrecompiled
这是错误消息:
资产未声明在生产中预编译.添加
Rails.application.config.assets.precompile += %w( public.css )到config/initializers/assets.rb和重新启动服务器
我读到在开发过程中,资产即时编译,无需预编译.为什么会出现预编译错误?Rails是否认为我在生产而不是开发?
2016年3月1日编辑------
我刚刚意识到在config/initializers/assets.rb上添加文件是有效的.但这是正确的方法吗?我必须在assets.rb中手动添加所有css/js/jpg文件才能工作.我觉得这在某种程度上违反了DRY原则.
Ame*_*mza 22
//= link_directory ../javascripts .js
Run Code Online (Sandbox Code Playgroud)
将此添加到
app/assets/config/manifest.js
对我有用(在 rails 6 上工作)
小智 21
我遇到了同样的问题,我修复了它,删除了 tmp 文件夹中的所有缓存文件
rm -rf tmp/cache/assets
Run Code Online (Sandbox Code Playgroud)
对于那些从 rails 4 升级到 5-6 之后来到这里的人 - checkout manifest.js
app/assets/config/manifest.js
Run Code Online (Sandbox Code Playgroud)
如果没有指向 js 的链接 - 只需添加一个:
//= link_directory ../javascripts .js
Run Code Online (Sandbox Code Playgroud)
请检查文件
config/environments/development.rb
Run Code Online (Sandbox Code Playgroud)
config.assets.debug = true(如果 TRUE 更改为 FALSE)
小智 7
这些都不对我有用(rails-5.0.7,sprockets-3.7.2,sprockets-rails-3.2.1):
config.assets.debug = false
config.assets.unknown_asset_fallback = true
Run Code Online (Sandbox Code Playgroud)
但是这样做:
config.assets.check_precompiled_asset = false
Run Code Online (Sandbox Code Playgroud)
小智 6
您可以通过以下代码行初始化该 scss 文件
Rails.application.config.assets.precompile += %w( applicationname.css )
Run Code Online (Sandbox Code Playgroud)
assets.debug在Rails v5.1.5中,更改对我不起作用。我必须使用此选项:
config.assets.unknown_asset_fallback = true