1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Cloudflare デプロイ中のRemixアプリのドメインと同様のドメインでR2のスタイルが別ファイルになっているHTMLオブジェクトにアクセスする

Posted at

概要

下記の記事の対応でHTMLのファイルを1階層下げたり、CSSのスタイルシートを別のフォルダに設置したりした。

上記の記事よりも前に下記の記事でリダイレクトを用いた別ドメインでの提供がうまく動かなくなった。

これをうまく動くように修正してみる。

方法

  1. リダイレクトを管轄しているworkersの「redirect-static-file」のコードを下記の様に修正

    export default {
      async fetch(request, env) {
        const url = new URL(request.url);
    
        // /detail/パスへのリクエストをR2バケットにリダイレクト
        if (url.pathname.startsWith('/detail/')) {
          const key = url.pathname.replace('/detail/', '');
          const r2Url = `https://public.www.miriwo.work/pages/${key}`;
          const r2Response = await fetch(r2Url);
    
          if (!r2Response.ok) {
            return new Response('Not Found', { status: 404 });
          }
    
          const headers = new Headers(r2Response.headers);
          return new Response(r2Response.body, {
            headers,
          });
        }
    
        // その他のリクエストはRemixアプリケーションにフォワード
        return env.ASSETS.fetch(request);
      },
    };
    
  2. 保存してデプロイをしておく

ここまで設定すれば https://miriwo.work/detail/index.htmlにアクセスすることでファイルを開くことはできるようになる。

CleanShot 2024-07-20 at 13.52.40.png

しかしよく見るとスタイルが当たっておらず、これをなんとかしたい。

  1. 下記のようにindex.htmlのlink要素を変更(要は直接R2の中のCSSを指定)

    static/pages/index.html
    <!DOCTYPE html>
    <html lang="ja">
    <head>
        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <!-- <link rel="stylesheet" href="../assets/css/index.css"> -->
        <!-- <link rel="stylesheet" href="https://R2のパブリックバケットのドメイン/assets/css/index.css"> -->
        <link rel="stylesheet" href="https://public.www.miriwo.work/assets/css/index.css">
        <title>Document</title>
    </head>
    <body>
      <h1>Hello Cloudflare R2(Other directory style)</h1>
    </body>
    </html>
    

これでhttps://miriwo.work/detail/index.htmlにアクセスしたところ下記のようにスタイルが当たった。

CleanShot 2024-07-20 at 14.21.20@2x.png

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?