2014-11-03 103 views
2

这是我们正在做的:更改mixins.scss不会更改CSS文件将其导入

  • 我们正在创造一个钩修改\html\css\common\_mixins.scss文件。

文件部署时被更新。到现在为止还挺好。

的问题是它们导入此混入没有显示任何改变,例如此文件中的CSS文件 - \webapps\ROOT\html\css\taglib\navbar.css

经过一番调试后,我发现\webapps\ROOT\html\css\taglib\.sass-cache中有一个.sass-cache文件夹,它也有门户使用的最终生成文件navbar.css

现在,当我部署钩子时,导入此mixin的所有CSS文件都不会在.sass-cache文件夹中重新编译/重新生成,这会使钩子无用。

有人可以告诉我是否有任何方法可以使用这个mixin,或者有任何其他的方法来做到这一点,或者我可以手动重新编译所有的CSS文件,只要我知道如何使用这个mixins。

另外我看到删除.sass-cache不是一个选项,因为如果有热修复,此文件夹也被liferay用来修补CSS文件。

环境

Liferay的EE 6.2 SP9和Tomcat

捆绑

原因comments

为什么我们需要改变这个文件的原因是有一个方法来禁用导航栏的响应元素。或者,最好还是禁用整个门户的响应。由于响应性是由媒体查询引起的。

感谢

回答

0

所以这些变化并没有反映出来,我认为CSS并不意味着钩住。

所以尝试了很多东西之后,我们仍然没能禁用的响应,所以我们在我们的主题应用下面的CSS我们custom.css。这适用于导航栏,对于其他人,我们可以再次单独包含这些样式。

@media (max-width: 979px) { 
    .navbar .container { 
     position: initial; 
    } 
    .navbar .container .btn-navbar { 
     color: initial; 
     display: none; 
     margin-bottom: initial; 
     width: initial; 
    } 
    .navbar .container .btn-navbar > .icon-bar:first-child { 
     margin-top: initial; 
    } 
    .navbar .container .btn-navbar > .icon-bar:last-child { 
     margin-bottom: initial; 
    } 
    .navbar .container .nav-collapse { 
     display: initial; 
    } 
    .navbar .container .nav-collapse.open { 
     display: initial; 
     height: initial; 
     overflow: initial; 
    } 
    .navbar .container .nav-collapse .btn { 
     padding: initial; 
    } 
    .navbar .container .navbar-search { 
     margin: initial; 
     padding: initial; 
    } 
    .navbar .container .navbar-search .btn, 
    .navbar .container .navbar-search .btn-link { 
     clip: none; 
     position: initial; 
    } 
    .navbar .container .navbar-search .form-search { 
     margin: initial; 
    } 
    .navbar .container .navbar-search .form-search .input-append { 
     display: initial; 
     padding-right: initial; 
    } 
    .navbar .container .navbar-search .form-search .input-append .search-query { 
     width: initial; 
    } 
} 

这个CSS代码是从this Liferay forum post拍摄。

1

这是不可能通过钩子改变_mixins.scss,而且它不仅是由于邪萨斯缓存。

_mixins.scss被编写为SASS,需要编译并存储在sass-cache中。每个主题都包含每个sass文件的编译版本。

的唯一途径是建立你自己的主题和变化_mixins.scss或_diff文件夹中的任何其他文件。

为什么你需要改变那个特定的文件?

+0

那么我确实改变了那个文件,如果我删除了'.sass-cache'文件夹,我的变化就显示出来了,也就是说'_mixins.scss'的变化被采用了。我需要这个文件来定制'响应'混合。你说***唯一的方法是建立你自己的主题,并在_diff文件夹中更改_mixins.scss或任何其他文件。*** - 那么如何将你的更改应用于taglib和门户文件夹的媒体查询,因为那些不是主题的一部分? – 2014-11-04 12:55:40

+0

我认为在taglib路径中存在navbar.css或类似的css是一个很大的错误。我的方法是通过钩子直接更改navbar.css而不用重写主题_mixins.scss。我认为这更安全。 – 2014-11-04 15:25:10

+0

是的,我正在尝试,让我们看看它是否回报。 – 2014-11-05 03:24:46