teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

2

考えられる原因を追加

2021/04/16 14:00

投稿

kitar
kitar

スコア23

answer CHANGED
@@ -2,4 +2,26 @@
2
2
 
3
3
  `asset()` 関数は [第二引数にSSLか否かを指定できる](https://github.com/laravel/framework/blob/6.x/src/Illuminate/Foundation/helpers.php#L138-L148) ようですので、 `asset('path/to/file', false)`としてみるといかがでしょうか?
4
4
 
5
+ **追記**
6
+
5
- また、手元に6.xがないので未検証ですが、6.xの場合はもしかすると `env` に書かれている `APP_URL` の内容がそのままプロトコル/ドメイン部分に反映されているかしれません。場合、 `APP_URL` に記載されたプロトコルを `http` に直だけも直るかもれません)
7
+ せっかくなので6.xを入れて試してみたのですが、インストール直後にhttpでアクセスすると `asset()` `link_to_route()` もデフォルトで上述第二引数などなしで)httpのURLを返ようでした。
8
+
9
+ > なお、 `asset()` はLaravel本体のヘルパ関数、 `link_to_route()` はLaravelCollectiveのヘルパ関数だと理解して試しています。
10
+
11
+ なにかアプリ全体でhttpsを強制するようなコードを書かれている可能性などはありませんでしょうか?
12
+
13
+ 例えば `app/Providers/AppServiceProvider.php` に以下のような記述があると、生成されるURLはすべてhttpsに変換されます。
14
+
15
+ ```php
16
+ use Illuminate\Routing\UrlGenerator;
17
+
18
+ class AppServiceProvider extends ServiceProvider
19
+ {
20
+ ...
21
+ public function boot(UrlGenerator $url)
22
+ {
23
+ $url->forceScheme('https');
24
+ }
25
+ ...
26
+ }
27
+ ```

1

リンク先がバージョン違いだったので修正

2021/04/16 14:00

投稿

kitar
kitar

スコア23

answer CHANGED
@@ -1,5 +1,5 @@
1
1
  `asset()` は機能しているが、出力結果が `http` ではなく `https` なのでリソースが見つからず `Failed to load resource` となっているように見受けられます。
2
2
 
3
- `asset()` 関数は [第二引数にSSLか否かを指定できる](https://github.com/laravel/framework/blob/8.x/src/Illuminate/Foundation/helpers.php#L144) ようですので、 `asset('path/to/file', false)`としてみるといかがでしょうか?
3
+ `asset()` 関数は [第二引数にSSLか否かを指定できる](https://github.com/laravel/framework/blob/6.x/src/Illuminate/Foundation/helpers.php#L138-L148) ようですので、 `asset('path/to/file', false)`としてみるといかがでしょうか?
4
4
 
5
5
  また、手元に6.xがないので未検証ですが、6.xの場合はもしかすると `env` に書かれている `APP_URL` の内容がそのままプロトコル/ドメイン部分に反映されているかもしれません。(その場合、 `APP_URL` に記載されたプロトコルを `http` に直すだけでも直るかもしれません)