diff options
author | Azul <azul@riseup.net> | 2017-07-26 11:19:41 +0200 |
---|---|---|
committer | Azul <azul@riseup.net> | 2017-07-26 11:19:41 +0200 |
commit | d939562360377dad4dfd8ab1520b15f85fc0a730 (patch) | |
tree | d5632fcf5c65331f48b2d0ccc1edaff03c6adf3f /config/environments/test.rb | |
parent | ec87fdd5b60aaab7bd44feafd12641c4a4e1bde6 (diff) |
custom: fix stylesheet customization
fixes #8794
Reported the underlying issue here:
https://github.com/rails/sass-rails/issues/406
Basically `@import` works like this:
* look for the file relative to the current file
* look for the file as an absolute path following the priorities in the
* asset load_paths
If the file can be imported as a relative path that will take
precedence.
So in order to pick up the head and tails inside customization rather
than in app/assets there are three possibilities:
1) use an absolute path. This is not as easy as it seems. There is no
way of indicating a path is meant to be absolute so we would have to
ensure it does not resolve to a relative path.
2) have a application.scss file inside the customization folder. Since
this is the main file it will be used instead of the app/assets one. In
there relative paths will now also default to the customization folder
rather than app/assets. Once we are in an app/assets file though it will
not go back to picking up customization with relative paths
3) use //= require instead of import. rails-sass advices against this as
each required file would be compiled on it's own and variables could not
be shared.
Going with option 1 here:
```scss
// application.scss:
@import "custom/head_import";
```
```scss
// custom/head_import.scss:
@import "head";
```
As long as there is no custom/head.scss in app/assets it will import
head as an absolute path and thus prefer config/custom over app/assets.
This seems like the best option for now as it does not require changes
to the deployments.
Diffstat (limited to 'config/environments/test.rb')
0 files changed, 0 insertions, 0 deletions