こんにちは、Bootstrap 4 alpha 6 の使用中に問題が発生しました。BS4 をインクルードした後のすべての CSS がブラウザーによって無視されることに遭遇しました。 さらに掘り下げると、生成された CSS の解析エラーが見つかりました。
Django 1.8.17、Compressor 2.1.1、Sass 3.4.22 を使用しています
最初に見つけた解析エラーをここに文書化します。
エラーは二重引用符で"
でstroke='rgba(0, 0, 0, 0.5")',
それがあるべき一方、 stroke='rgba(0, 0, 0, 0.5)'
。 これにより、ドキュメントで解析エラーが発生します。
.navbar-light .navbar-toggler-icon {
background-image: url("data:image/svg+xml;charset=utf8,%3Csvg viewBox='0 0 32 32' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath stroke='rgba(0, 0, 0, 0.5")' stroke-width='2' stroke-linecap='round' stroke-miterlimit='10' d='M4 8h24M4 16h24M4 24h24'/%3E%3C/svg%3E"); }
.navbar-light .navbar-toggler-icon {
background-image: url("data:image/svg+xml;charset=utf8,%3Csvg viewBox='0 0 32 32' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath stroke='rgba(0, 0, 0, 0.5)' stroke-width='2' stroke-linecap='round' stroke-miterlimit='10' d='M4 8h24M4 16h24M4 24h24'/%3E%3C/svg%3E"); }
コンパイル済みバージョンと一致します。
$navbar-light-toggler-bg: str-replace(url("data:image/svg+xml;charset=utf8,%3Csvg viewBox='0 0 32 32' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath stroke='#{$navbar-light-color}' stroke-width='2' stroke-linecap='round' stroke-miterlimit='10' d='M4 8h24M4 16h24M4 24h24'/%3E%3C/svg%3E"), "#", "%23") !default;
$navbar-light-color: rgba($black,.5) !default;
$black: #000 !default;
{% compress css %}
<link rel="stylesheet" type="text/x-scss" media="screen" charset="utf-8"
href="/static/bootstrap/scss/bootstrap.scss" />
{% endcompress %}
COMPRESS_PRECOMPILERS = (
('text/coffeescript', 'coffee --compile --stdio'),
('text/x-sass', 'sass {{infile}} {{outfile}} --load-path {}'.format(LIB_PATH)),
('text/x-scss', 'sass --scss {{infile}} {{outfile}} --load-path {}'.format(LIB_PATH)),
)
見た目がかなり悪い。 これを修正するための助けをいただければ幸いです。今後数週間は時間がないでしょう。
行ってみます。 私はあなたのコードベースに精通していないので、どこから始めるべきかについての指針/勘は非常に価値があります。
いくつかの考え:
COMPRESS_ENABLED = False
発生しますか?@carltongibson :
COMPRESS_ENABLED = False
で実行されており、 True
を設定した場合と同じ結果が観察されました。$ sass -v
Sass 3.4.22 (Selective Steve)
sass バージョンまたはビルド済みの bootstrap.css ファイルのいずれかをコンプレッサー ブロックに含めようとしました。その後に、有効な/解析可能な CSS のチェックライトとして本体の b ackground :greenを含むファイルが続きます。 ビルド済みの .css バージョンでは「緑」になっていますが、コンプレッサーがブートストラップを構築する .sass では「緑」になりません。
@wjdp OK ありがとうございます。 うーん。
その場合、 Compressor.precompile
ブレークポイントを設定することを提案できますか? まずcontent
は正しく渡されていますか?
hunks()
では、プリコンパイラから返されたvalue
は正しいですか?
私は今これを調べています。 問題は #764 と同じです。 CssAbsoluteFilter はr'url\(([^\)]+)\)'
を使用して URL を照合するため、最初の閉じ括弧で停止します。 正規表現は任意の数のネストされた括弧を処理できないため、次の 3 つのオプションがあります。
私はこれに多くの時間を費やしたくなく、オプション 1 を検討しています。より堅牢なソリューションを作成したい場合は、喜んでレビューします。
#828 で提案された修正。 実際にはネストされた括弧をまったく処理せず、開始引用符がある場合は閉じ引用符を期待するだけで (したがって、 url("data:...stroke='rgba(0, 0, 0, 0.5)
一致しません)、安全のために data-uri は完全に無視されます。
@wjdp #828 を試してもらえますか? それはあなたが必要とすることをするはずですが、あなたの側でテストを実行することは良い確認になります.
やります
@carltongibson PR がこの問題を@karyon さん、とても迅速な作業をありがとうございました! :スマイル:
すごいですね~フォローありがとうございます。