首页 > 解决方案 > CSS / SCSS 不会在 Docker 中运行的 ruby​​ on rails 中更新

问题描述

您好,我在 docker 环境中运行的 ruby​​ on rails 应用程序遇到问题。当我在我的应用程序中更新我的 scss 文件并使用 运行它时docker-compose builddocker-compose up我更新的 scss 不会根据我应用的更改进行更新。

我在我的app/assets/stylesheets/application.css.scss目录中配置了一些东西:

应用程序.css.scss

@import "front/style";

我添加了一个名为的文件夹front,并在stylesheets/front名为style.scss

样式.scss

@charset "UTF-8";

@import "compass";
@import "compass/reset/";
@import "sampscss";

我还在目录中创建_sampscss.scss并将stylesheets/front_sampscss.scss导入style.scss

_sampscss.scss

.regist-block {
    width: 450px;
    margin: 50px auto 70px;
    background: #fff;
    border-radius: 5px;

    .inner {
        padding:30px;
    }
    
    #btn-login,
    .btn-login,
    .btn-signup {
        width: 200px;
        line-height: 36px;
        height: 40px;
        font-size: 16px;
        margin: 20px auto;
        background: $color-green;
        text-decoration: none;
        &.btn_confirm_email {
            width:250px;
            border-radius:30px;
            box-shadow:2px 2px 4px -2px #999;
        }
    }
}

btn_confirm_email 然后在我index.html.erb的中调用那个类input type submit tag

index.html.erb

<div class="regist-block">
    <div class="inner">
        <%= f.submit "Send", class: 'btn-login btn_confirm_email' %>
    </div>
</div>

但由于某种原因,scss文件最终不会更新。我确实发现了一些类似的问题,并尝试在 docker 上运行这些命令:

docker-compose exec web bundle exec rake assets:clean
docker-compose exec web bundle exec rake assets:precompile

它说rake assets:clean # Remove old compiled assetsrake assets:precompile # Compile all the assets

但似乎没有任何效果,并且 scss 文件不会更新。此外,我尝试将一些现有样式更改为我的public/assetsdocker-compose up再次运行,但似乎它不起作用所有预编译的旧资产仍缓存到public/assets目录中。

同样在我的assets/javascripts/application.js

//= require jquery
//= require jquery_ujs

这个是存在的。知道如何解决这个问题,为什么 scss 文件不会更新,而是public/assets目录中的预编译 css 文件不会改变,即使我运行rake assets:cleanrake assets:precompile

标签: cssruby-on-railsrubydockersass

解决方案


嗨,似乎删除assets目录中的文件夹public/assets解决了这个问题。而且在我的Application.js我已经将 turbolinks 从 更改//= require jquery.turbolinks//= require turbolinks. 不知道它是如何解释的,但这解决了我确实将 gem 添加到我的 Gemfile 中的问题,这gem 'turbolinks', '~> 5.2.0'可能是因为我使用了一些已弃用的 gem。


推荐阅读