1

NuGet (BundleTransformer.SassAndScss v1.9.96 と Core および LibSassHost コンポーネント) を使用して、MVC 5プロジェクトにBundleTranslatorをセットアップしました。次に、バンドル参照を View.cshtml に追加しました

@Styles.Render("~/Content/sass")

BundleConfig.csを再定義しました:

var nullOrderer = new NullOrderer();
var commonStylesBundle = new CustomStyleBundle("~/Content/sass");
commonStylesBundle.Include("~/Content/Custom/the-style.scss");
commonStylesBundle.Orderer = nullOrderer;
bundles.Add(commonStylesBundle);

ビルド後、Web サイトには .scss 参照があります。

<link href="/Content/Custom/the-style.scss" rel="stylesheet">

SassAndCoffeeパッケージとSassyStudioをインストールしたため、おそらくすべてがローカルで機能しています。外部 IIS サーバーにデプロイすると、問題が発生します。ファイルは Content/Custom ディレクトリに存在しますが、Web サイトが壊れています。HTML コードにはファイル参照もあります (コンパイル済みの .css ではなく、.scss ファイルにリンクしています) が、そこに移動しようとすると、エラー 500 が発生します。

Sass ファイルのBuild Actionを( Noneから) Contentに変更し、 Copy to Output DirectoryDo not copyのままにしました。また、httpHandlers を Web.config に追加しました (ただし、実際には何が原因かわかりません) が、それでも何も役に立ちません。

<httpHandlers>
  <add path="*.sass" verb="GET" type="BundleTransformer.SassAndScss.HttpHandlers.SassAndScssAssetHandler, BundleTransformer.SassAndScss" />
  <add path="*.scss" verb="GET" type="BundleTransformer.SassAndScss.HttpHandlers.SassAndScssAssetHandler, BundleTransformer.SassAndScss" />
</httpHandlers>

BundleTransformerにこの種のデータを提供するNuGetインストールのため、 Web.configのすべての設定を確認しませんでした。

BundleTransformerがIISで正しく動作するように構成するにはどうすればよいですか? サンプル コードのようにBundleResolverをオーバーライドする必要がありますか?

BundleResolver.Current = new CustomBundleResolver();
4

1 に答える 1

2

問題を診断するには、いくつかの方法があります。まず、ローカルで動作します!:)

1.
バンドルが正しく機能することをテストする価値があります。これを行うには、次のように一時的に設定します (終了したらこれを取り出します)。

public class BundleConfig
{
    public static void RegisterBundles(BundleCollection bundles)
    {
        BundleTable.EnableOptimizations = true;

        // Bundles and stuff...
    }
}

サイトを実行すると、ブラウザの開発ツールで次のような結果が得られます。

/bundles/commonStyles?v=BzJZwKfP1XV8a6CotGRsHhbxraPDst9zDL2X4r36Y301

これが機能する場合、バンドルが本番環境で機能することを嬉しく思います。

2.
権限。500 内部サーバー エラーが発生した場合は、scssファイルを含むフォルダーのアクセス許可を確認してください。また、それらがそこにあることを確認してください:)

3.
MIME タイプ。IIS に MIME タイプを追加する必要がある可能性はわずか.scssですが、そうなるとは確信していません。

于 2016-03-31T12:33:01.600 に答える