SenchaTouchのProfile利用時のエラー回避

  • OS: Mac Mountain Lion
  • Sencha Touch: 2.3.0
  • Sencha CMD: 4.0

の環境で「Sencha Touchパーフェクトガイド」の12章からのサンプルアプリ(AccountBook)を写経している時に出くわしたエラーとその回避策です。

sencha generate profile Phone でProfileを作ってメイン画面を作ってアプリを起動しようとすると(SafariError Console上)

[code]

Failed to load resource: the server responded with a status of 404 (Not Found)

[/code]

[code]

Error: [Ext.Loader] Failed loading 'app/view/Main.js', please verify that the file exists

[/code]

がでます。

対策1. app/view/Main.jsは消しちゃダ

まだはっきりと原因をつかめてないのでいきなり対策1として「ダメ」と断言しちゃダメかもしれないんですが、エラーを見る限りsenca-touch.jsが app/view/Main.js が見つからない、といってるので本では

「不要だから消しましょう」

と書いてますが、結果的に app/view/Main.js を復活したら上記エラーは消えました。

対策2. app.jsにprofilesを追加しよう

対策1を行っただけではエラーは消えますがメイン画面は描画されません。

もしかして本の中の前の方の章でご説明されてるのかもしれませんが、app.jsに profiles を指定して参照してあげる必要があります。

[code lang="javascript"]

Ext.application({

name: 'Ab',

profiles: ['Phone', 'Tablet'], // ここを追記

requires: [

'Ext.MessageBox'

],

以下略...

[/code]

これでアプリをリロードすると無事に app/view/phone/Main.js をロードして描画されます。