TKngDisuke
@TKngDisuke (大輔 徳永)

Are you sure you want to delete the question?

If your question is resolved, you may close it.

Leaving a resolved question undeleted may help others!

We hope you find it useful!

[Laravel]SASSを導入後のJetstreamのcssが動作しない

解決したいこと

[Laravel]SASSを導入後のJetstreamのcssが動作しない

LaravelでECサイトをつくっています。
商品を注文するサイトの見栄えをよくするためにこのサイト(https://note.com/mukae9/n/n103587d08ef2)

を利用しているとSASSを導入しないといけないとのことでこちらのサイト(https://qiita.com/shizen-shin/items/2dea785c3fdbc7c96a60)
を参考にしました。
そこで1つ目のサイトだとapp.scssが本環境と違い、

@import url('https://fonts.googleapis.com/css?family=Nunito');

@import 'variables';

@import '~bootstrap/scss/bootstrap';

@import 'style';

ではなく本環境は

h1 {
  color: skyblue;
}

でしたのでこちらに_style.scssの内容を入れてコンパイルすることにしました。
そうするとJetstreamのcssが上手く動かなくなったのか、画面のレイアウトが変になってしまいまい、Google Chromeの開発ツールを見るとエラーがありました。
解決方法を教えて下さい。

発生している問題・エラー

Failed to load resource: the server responded with a status of 500 (Internal Server Error) livewire.js:1
Uncaught ReferenceError: Livewire is not defined    at dashboard:331 

エラー内容はlivewireに何かしらエラーが生じたようですが、わかりません。今まではエラーはなかったのですが、cssをいじったのが原因で上手く動かなくなってしまいました。
どういうプログラムを書いているかはこちらでわかります。(https://qiita.com/TKngDisuke/questions/6d081045b27630043af3)

サーバーは今Laravelのサーバーでやっており、MAMPのサーバーを使うと表示されないようになってます泣→(https://qiita.com/TKngDisuke/questions/692ee1a046286266a63f)

また、viewでforeachの中に

を入れると<>/divが繰り返し登場してしまいます。
でも上手くいかないので繰り返し処理の中で
を使うのは控えるべきなのでしょうか?
          @foreach($my_carts as $my_cart)
              <div class="mycart_box">
                  <p>ユーザーID:{{$my_cart->user_id}}</p>
                  <p>ストックID:{{$my_cart->stock_id}}</p>
            <>/div
          @endforeach

追記

参考したサイト(https://laraweb.net/environment/7907/)
どうやらBootstrapのscssファイルを入れていないということで入れたりするとエラーが変わりました。
スクリーンショット 2021-08-27 17.59.08.png

DevTools failed to load source map: Could not load content for http://127.0.0.1:8000/js/popper.js.map: HTTP error: status code 404, net::ERR_HTTP_RESPONSE_CODE_FAILURE

Jetstreamだけcssが反映されておらず、他のサイトはcss?が反映されており、このように見やすいレイアウトに変更できました。
また、dashboardに行くとこのようなエラーが出ました

Symfony\Component\Finder\Exception\DirectoryNotFoundException
The "/Applications/MAMP/htdocs/laravelapp/app/Http/Livewire/" directory does not exist. (View: /Applications/MAMP/htdocs/laravelapp/resources/views/layouts/app.blade.php)

スクリーンショット 2021-08-27 18.07.13.png

0

1Answer

livewireはインストール済みですか?package.jsonで確認できます。
app.jsにlivewireをimport/requireしましたか?
その後、npm run development/watch/production とかをやりましたか?

0Like

Comments

  1. @TKngDisuke

    Questioner

    こちらのサイト(https://qiita.com/manbolila/items/498aae00f3574c72f031)
    を参考にしてJetstream導入の際にインストールしました。
    package.jsonファイルが多すぎてインストール済みだと確認はしてません。
    php artisan jetstream:install livewire このコマンドでインストールしました.
    app.jsにlivewireをimport/requireするように書いていなかったのでしていないと思います。
    どのようにimport/requireすればいいのか検索しても見つかりません。
    申し訳ないです。
  2. プロジェクトルートにあるpackage.jsonです。
    php artisan jetstream:install livewire後、
    1. `npm install`
    2. `npm run dev`
    3. `php artisan migrate`
    はしましたか?
  3. @TKngDisuke

    Questioner

    プロジェクトルートを見たところ、livewireは見つかりませんでした。
    {
    "private": true,
    "scripts": {
    "dev": "npm run development",
    "development": "mix",
    "watch": "mix watch",
    "watch-poll": "mix watch -- --watch-options-poll=1000",
    "hot": "mix watch --hot",
    "prod": "npm run production",
    "production": "mix --production"
    },
    "devDependencies": {
    "@tailwindcss/forms": "^0.3.1",
    "@tailwindcss/typography": "^0.4.0",
    "alpinejs": "^3.0.6",
    "axios": "^0.21",
    "bootstrap": "^4.6.0",
    "jquery": "^3.6",
    "laravel-mix": "^6.0.6",
    "lodash": "^4.17.19",
    "popper.js": "^1.16.1",
    "postcss": "^8.1.14",
    "postcss-import": "^14.0.1",
    "resolve-url-loader": "^3.1.2",
    "sass": "^1.32.11",
    "sass-loader": "^11.0.1",
    "tailwindcss": "^2.2.2",
    "vue": "^2.6.12",
    "vue-template-compiler": "^2.6.12"
    }
    }

    また先程のサイト通りに動いたので、php artisan migrateはインストールした後、一番最初に実行しました。順番は関係あるのでしょうか?
    ちなみにその後、データベースを作ってmigrateしたのでそれでマイグレーションは実行されたかと思います。
  4. package.jsonには問題はなさそうです。
    php artisan migrateの順番は関係あります。php artisan jetstream:install livewire後、jetstreamが使用するマイグレーションが作られるからです。migrateをしないと関するデータベースは応用されません。
    migrationの結果はmigrationsテーブルに反応されます。php artisan migrate:statusを通じて確認することもできます。

    resources/js/app.jsを見て頂けてもよろしいでしょうか?
  5. @TKngDisuke

    Questioner

    php artisan migrate:statusで確認したところ、
    +------+-------------------------------------------------------+-------+
    | Ran? | Migration | Batch |
    +------+-------------------------------------------------------+-------+
    | Yes | 2019_12_14_000001_create_personal_access_tokens_table | 5 |
    | Yes | 2021_08_18_183104_change_string_to_int_to_users_table | 8 |
    | Yes | 2021_08_18_232422_create_products_table | 9 |
    | Yes | 2021_08_24_235617_create_store_table | 10 |
    | Yes | 2021_08_25_010308_rename_store_to_stores_table | 11 |
    | Yes | 2021_08_25_014329_change_stores_table | 12 |
    | Yes | 2021_08_25_164809_create_carts_table | 13 |
    +------+-------------------------------------------------------+-------+
    となっていました。
    resources/js/app.jsはrequire('./bootstrap');

    import Alpine from 'alpinejs';

    window.Alpine = Alpine;

    Alpine.start();
    このようになっています。
    エラー内容が変わっていたので追記しました。
  6. DevTools failed to load source mapはワーニングだけです。あまり気にしなくていいです。

    The "/Applications/MAMP/htdocs/laravelapp/app/Http/Livewire/" directory does not existについてググった結果、php artisan livewire:discoverをすれば治ると書いてありました。
  7. @TKngDisuke

    Questioner

    laravelapp % php artisan livewire:discover

    をすると
    Symfony\Component\Finder\Exception\DirectoryNotFoundException

    The "/Applications/MAMP/htdocs/laravelapp/app/Http/Livewire/" directory does not exist.

    at vendor/symfony/finder/Finder.php:590
    586▕ } elseif ($glob = glob($dir, (\defined('GLOB_BRACE') ? \GLOB_BRACE : 0) | \GLOB_ONLYDIR | \GLOB_NOSORT)) {
    587▕ sort($glob);
    588▕ $resolvedDirs = array_merge($resolvedDirs, array_map([$this, 'normalizeDir'], $glob));
    589▕ } else {
    ➜ 590▕ throw new DirectoryNotFoundException(sprintf('The "%s" directory does not exist.', $dir));
    591▕ }
    592▕ }
    593▕
    594▕ $this->dirs = array_merge($this->dirs, $resolvedDirs);

    +17 vendor frames
    18 artisan:37
    Illuminate\Foundation\Console\Kernel::handle(Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput))

    となっており、同じ内容のエラーが出ているようです。
    これはもう一度livewireを
    php artisan jetstream:install livewire
    1. `npm install`
    2. `npm run dev`
    3. `php artisan migrate`
    したほうが良いですかね?
    livewireがlaravelappに入っていないよっていうエラーですよね。
    多分インストールはしたのですが、このようなエラーになるということはインストールされていないということなので
    インストールした内容も再度インストールしてシステム的に問題ないか不安で質問しました。。
  8. もう一度livewireをインストールしてみてください。
    ソースコードはGitHub通じてシェアーすることは可能ですか?
  9. @TKngDisuke

    Questioner

    ソースコードをGithubにアップロードしてないです。
    プロジェクトごと送る方法があまり分からなくて、、
    簡単なソースコードはブラウザから載せてたりはしてました。
    もう一度インストールしましたところ、Jetstreamのcssがうまく稼働しました!
    逆にJetstreamのログイン画面以外の他のサイトのcssが変なデザインになっていましたので、layoutが被っているのかな?と思って修正箇所を探した所、layoutはshop.blade.php(サイト用)とapp.blade.php(jetstream用)で分けているのでapp.cssのcssの部分に被る部分があるのかと思って今修正箇所を探しています。

Your answer might help someone💌