1

Sencha Touch ベースのアプリケーションのプロダクション ビルド バージョンで、IE10 と Chrome でスタイルを適切に適用できないという問題が発生しています。

再現する手順:

Main.js

Ext.define('Lab.view.Main', {
extend: 'Ext.Panel',
xtype: 'main',
requires: [

],
config: {
tabBarPosition: 'bottom',

items: [

{
xtype: 'panel',
cls: 'MyFirstLogo',
itemId: 'firstLogo'
} ]
}
});

SCSS ファイル - app.scss

.MyFirstLogo{
height: auto !important;
min-height: 100px;
min-width: 404px;
padding: 0px;
background-image:url(../../resources/images/test1.jpeg);
background-repeat:no-repeat;
background-position: left;
}
  1. resources/sass/app.scss - で、背景画像の URL が次のようになっていることを確認します../../resources/images/test1.jpeg

  2. プロジェクトルート(Lab/)で「sencha app build production」を実行

  3. IE10 64 ビット (Win 7) でアプリケーションにアクセスします。http://localhost/lab/build/production/Lab/

  4. IE10では画像がまったく表示されません。ただし、Chrome でこれを試すと、うまく機能します。Chromeは何とか変換でき../../resources/images/test1.jpegますhttp://localhost/lab/build/production/Lab/resources/images/test1.jpegが、IE10はそれを行わず、画像を表示できません。このようにして、プロジェクト構造に合わせて、ローカル開発環境でも機能します。

  5. IE10 で動作させるために、resources/sass/app.scss のイメージ URL../../resources/images/test1.jpegresources/images/test1.jpeg(resources/ ディレクトリがプロジェクト ルートにあるため、これは実際には理にかなっています) に変更し、本番用に再構築しました。この場合、画像は IE10 に表示され始めますが、Chrome を使用すると画像が表示されず、Chrome がこの URL から画像を取得しようとしていますが、これは正しくありません:http://localhost/lab/build/production/Lab/resources/css/resources/images/test1.jpegであり、失敗します。この方法では、私のローカル開発環境でも機能しません。

  6. この問題は、「フォント」などの他のリソースでも発生します。

Sencha の Production Build バージョンが IE10 と Chrome の両方で同時に動作しないという問題について、ここで何が起こっているのかを理解するのを手伝っていただけませんか? これは Sencha Touch または Chrome のバグですか、それともここで何か不足していますか?

4

4 に答える 4

2

Sencha の人々によって確認されたように、これは Sencha Touch の既知のバグであることが判明しました。このリンクを確認してください: http://www.sencha.com/forum/showthread.php?266275 . @peter と @arthurakay に感謝します。これに関する回避策または詳細な議論が必要な場合。議論を再開させていただきます。みんなありがとう!

于 2013-11-08T00:00:35.707 に答える
0
  1. アプリケーションに (任意のブラウザーで) アクセスするアドレスは、ページのベース アドレスになります。あなたの場合はhttp://localhost/lab/build/production/Lab/
    、印刷することでこれを確認できますalert(document.location.href)
    末尾のスラッシュを確認してください。
  2. 住所../../resources/images/test1.jpegは意味 http://localhost/lab/build/production/Lab/../../resources/images/test1.jpegし、間違ったものに変換されます
    http://localhost/lab/build/resources/images/test1.jpeg
  3. 取得する相対アドレスを変更../resources/images/test1.jpegします
    http://localhost/lab/build/production/resources/css/resources/images/test1.jpeg

結果のアドレスは、ブラウザのアドレス バーに入力することでいつでも確認できます。
これは基本的なタスクであるため、IE と Chrome の両方がパスを正しく変換します。

于 2013-11-07T18:37:28.813 に答える
0

IE10 と Chrome の両方で画像/アイコンを表示するための回避策を見つけました。

ここで、「background-image」を含む特定のクラスに指定された CSS プロパティには、次のように IE10 と Chrome の両方の作業 URL が含まれている必要があります。

.menuHome { background:url(resources/icons/menu/Home.png),url(../icons/menu/Home.png) no-repeat center; }

ここでは、両方の URL が CSS プロパティに存在します。したがって、IE10 は最初の URL から画像を取得し、Chrome は 2 番目の URL から画像を取得します。

于 2014-04-11T15:18:27.027 に答える
0

相対ファイル パスで非常に多くのディレクトリに戻るのはなぜですか?

開発中か運用中かに関係なく、CSS ファイルは次の場所にあります。

{app_root}/resources/css/app.css

あなたの画像がここにあると仮定します:

{app_root}/resources/images/

...次に、ファイルパスは次のようになります。

background-image:url(../images/test1.jpeg);

参考までに、指定しなかったため、Touch 2.3 と Cmd 4.0.x を想定しています。

于 2013-11-07T14:13:25.250 に答える