如何解决在单个cloudfront域路径下服务的多个netlify静态站点
我有多个netlify静态站点,我希望在一个Cloudfront域的路径下全部提供这些静态站点。但是,不提供不在netlify应用程序根目录中的资源(提供404)
即
https://netlify1-abcd123.netlify.app/
- /
- /第1页
- / page1 / subpage1
- / page2
- /images/logo.png
- /stylesheets/styles.css
https://netlify2-defg456.netlify.app/
- /
- / netlify2-page1
- / netlify2-page1 / subpage1
- / netlify2-page2
- /netlify2-images/logo.png
- /netlify2-stylesheets/styles.css
,我希望将它们放在#include <mpi.h>
#include<stdlib.h>
#include<stdio.h>
int main( int argc,char *argv[])
{
MPI_Init(&argc,&argv);
MPI_Win win;
MPI_Comm MPI_COMM_SHM;
int rank;
long int mb = 0;
double* bufptr;
MPI_Comm_rank( MPI_COMM_WORLD,&rank );
int MB = 10000;
if(rank==0) mb = MB*1e6/sizeof(double);
MPI_Comm_split_type( MPI_COMM_WORLD,MPI_COMM_TYPE_SHARED,MPI_INFO_NULL,&MPI_COMM_SHM);
MPI_Aint size_bytes,size_of_T,lb;
MPI_Info infoAlloc;
MPI_Info_create( &infoAlloc );
MPI_Info_set( infoAlloc,"alloc_shared_noncontig","true" );
MPI_Type_get_extent(MPI_DOUBLE_PRECISION,&lb,&size_of_T);
size_bytes = mb*size_of_T;
int disp_unit = size_of_T;
printf("%size when sending:===> bytes: %ld nelem: %ld %ld\n",size_bytes,mb,size_of_T);
MPI_Win_allocate_shared( size_bytes,disp_unit,infoAlloc,MPI_COMM_SHM,&bufptr,&win);
double *rbuf;
MPI_Aint rsize;
int disp;
if(rank != 0)
{
MPI_Win_shared_query(win,&rsize,&disp,&rbuf);
printf("Receiving sizes %d %ld %ld\n",rank,rsize,rsize/disp);
}
MPI_Finalize();
}
和www.mydomain.com/netflify1
下。当前www.mydomain.com/netlify2
的根是通过S3静态站点提供的。
我已经在netlify.toml中为每个站点配置了重写规则(根据www.mydomain.com
进行了相应更改),如下所示:
netlify2
...,然后将一个Origin的原始域名添加到Cloudfront中,该域名的原始域名为[[redirects]]
from = "/netlify1/*"
to = "https://netlify1-abcd123.netlify.app/:splat"
status = 200
force = true
-其他所有Origin设置均为默认设置。
然后,我用路径模式https://netlify1-abcd123.netlify.app/
配置了一个指向netlify1
起点的行为。请注意,我无法使用netlify1
的行为,因为Default
的主要索引是通过S3上托管的静态站点提供的。
在为我的netlify应用程序的根www.mydomain.com
提供服务时,这一切都很好。我可以导航到/
并查看我的netlify应用程序的主页。但是,netlify上www.mydomain.com/netlify1
以外的任何内容都不会得到提供。
我从开发人员工具中看到,尝试加载图像和样式时,正在向/
和www.mydomain.com/images/logo.png
发出请求。这会返回404,因为(我认为)它们没有被任何Cloudfront Behavior或Netlify重写规则所吸收。
所以我的问题是。如何使图像,样式表和任何不在netlify应用程序根目录下的页面正常工作?我可以通过在Cloudfront上手动添加每个潜在路径作为“行为”来使它起作用(例如,将行为模式配置为www.mydomain.com/stylesheets/styles.css
的路径模式以指向“ /images/*
起源”),但这似乎没有可扩展甚至正确的。
我不知道是否需要在构建过程中以某种方式在netlify应用程序上重写我的所有URL,以使它们变为netlify1
和/netlify1/images
而不是/netlify/page1
和{{1} }(netlify应用程序是使用Sphinx文档构建的文档),或者是否需要通过Lambda @ Edge中的重写规则来处理。我完全迷住了。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。