首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Rails 4在进行更改时不更新dev中的css

Rails 4在进行更改时不更新dev中的css
EN

Stack Overflow用户
提问于 2016-06-16 17:43:13
回答 2查看 1.7K关注 0票数 1

我已经为此挣扎了一段时间,但基本上每次对下面列出的css文件(例如layout.scss)进行更改时,我都必须停止服务器并运行rake assets:clobber,然后重新启动服务器,然后才能看到更改。

不用说,这是非常乏味的。下面是我的配置,如果还有什么要我发的,请告诉我。

Gemfile

代码语言:javascript
复制
source 'https://rubygems.org'
ruby '2.2.3'

# Bundle edge Rails instead: gem 'rails', github: 'rails/rails'
  gem 'rails', '4.2.5'

# DB Tools
  gem 'pg'
  gem 'money-rails'
  gem 'pluck_to_hash'

# View Development Tools
  gem 'sassc-rails'
  gem 'haml-rails'
  gem 'friendly_id', '~> 5.1.0'

# View Display Tools
  gem 'jquery-rails'
  gem 'font-awesome-rails'

# Form Tools
  gem "cocoon"
  gem 'amoeba'

# Angular Tools
  gem 'angularjs-rails', '~> 1.4.7'
  gem 'angular-rails-templates'
  gem 'angular_rails_csrf'

# API Tools
  gem 'active_model_serializers', '~> 0.10.0.rc2'
  gem 'easy_diff'

# Authentication / Authorization
  gem 'devise'

# Use Uglifier as compressor for JavaScript assets
  gem 'uglifier', '>= 1.3.0'
  gem 'sdoc', '~> 0.4.0', group: :doc

# Hosting, Serving & Deployment
  gem 'puma'
  gem 'foreman'

# Env specific
group :development do
  gem 'awesome_print', :require => 'ap'
  gem "better_errors"
  gem "binding_of_caller"
  gem 'annotate', '~> 2.6.6'
  gem 'seed_dump'
end

group :development, :test do
  gem 'byebug'
  gem 'web-console', '~> 2.0'
  gem 'spring'
end

development.rb

代码语言:javascript
复制
Rails.application.configure do
  config.cache_classes = false
  config.eager_load = false

  config.consider_all_requests_local       = true
  config.action_controller.perform_caching = false

  config.action_mailer.raise_delivery_errors = true

  config.active_support.deprecation = :log

  config.active_record.migration_error = :page_load

  config.assets.debug = true
  config.assets.prefix = "/dev-assets"
  config.assets.digest = false
  config.serve_static_files = false

  config.assets.raise_runtime_errors = true

  config.sass.inline_source_maps = true

  config.action_mailer.default_url_options = { host: 'localhost', port: 8080 }

  config.action_mailer.delivery_method = :smtp

  config.action_mailer.smtp_settings = {
    address:              "smtp.gmail.com",
    port:                 587,
    domain:               ENV["GMAIL_DOMAIN"],
    user_name:            ENV["GMAIL_USERNAME"],
    password:             ENV["GMAIL_PASSWORD"],
    authentication:       "plain",
    enable_starttls_auto: true
  }

end

application.css

代码语言:javascript
复制
/*
 *= require_self
 *= require application-loader
*/

application-loader.scss

代码语言:javascript
复制
// common/
@import 'common/flexbox.scss';
@import 'common/baseline.scss';
@import 'common/fonts.scss';
@import 'common/mixins.scss';

@import 'common/common.scss';
@import 'common/forms.scss';
@import 'common/layout.scss';
@import 'common/pages.scss';
@import 'common/svg.scss';

@import 'authenticated/modules/stats.scss';

// authenticated/
@import 'application/application-layout.scss';
@import 'application/application-forms.scss';
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-06-16 19:33:25

在我的原始答案的评论中找到了@gates提出的一个想法之后,我偶然发现了这篇博客文章

基本上,由于sprockets没有进行加载,它似乎没有重新编译对单个文件的更改(虽然我不知道为什么整个重新编译没有更新),所以在博客的指导下,我现在有sprockets加载所有文件,并根据需要导入混合文件。就像这样:

application.css

代码语言:javascript
复制
/*
 *= require_tree ./common
 *= require_tree ./authenticated
 *= require font-awesome
 *= require_self
*/

authenticated/authenticated-layout.scss

代码语言:javascript
复制
@import '../flexbox.scss';
@import '../mixins.scss';

body {
  // etc...
}

现在,我可以更改任何scss文件并重新加载页面,而不必关闭资产和/或重新启动服务器!

票数 3
EN

Stack Overflow用户

发布于 2016-06-16 18:08:30

您认为我们需要在'initialisers/assets.rb‘中添加文件吗?这对我有用过一次。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37866026

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档