1 Cách nhận và ánh xạ URL động bằng cách sử dụng Kết xuất Prismic và phía máy chủ

câu hỏi được tạo ra tại Wed, May 8, 2019 12:00 AM

Tôi có một ứng dụng sử dụng Tạo ứng dụng tiếp theo với SSR bằng API Prismic làm nguồn nội dung. Tôi đang cố gắng tạo ra các tuyến đường năng động và chạy vào một bức tường gạch. Các tuyến đường Singleton vẫn ổn nhưng cố gắng tự động tạo các tuyến đường mà tôi dường như không thể tìm ra.

Thành phần của tôi nơi tôi chờ để nhận đạo cụ

class AboutPage extends React.Component {
  static async getInitialProps(context) {
    const { slug } = context.query;
    const response = await getAboutPage(slug);
    return {
      doc: response,
      slices: response.results[0].data.body,
      data: response.results[0].data,
    };
  }

Truy vấn của tôi nơi tôi cố lấy dữ liệu trang của mình dựa trên UID:

const getAboutPage = slug => {
  try {
    const API = Prismic.api(PRISMIC_API_URL);
    const response = API.query([
      Prismic.Predicates.at('document.tags', [SOURCE]),
      Prismic.Predicates.at('my.about_page.uid', slug),
    ]);
    return response;
  } catch (error) {
    return error;
  }
};

Trình giải quyết liên kết lăng kính của tôi, nhưng không chắc điều này có liên quan

function linkResolver(doc) {
  if (doc.type === 'home_page') return `/`;
  if (doc.type === 'pricing_page') return `/pricing`;
  if (doc.type === 'service_page') return `/services/${doc.uid}`;
  if (doc.type === 'about_page') return `/${doc.uid}`;
  if (doc.type === 'resource_page') return `/resources/${doc.uid}`;
  return '/';
}
    
1
1 Câu trả lời                              1                         

Đặt ra một số giả định từ thực tế là bạn đang sử dụng Tạo ứng dụng tiếp theo, tôi nghĩ một nguyên nhân có thể xảy ra là bạn không chuyển truy vấn đến thành phần vì bạn đang sử dụng lệnh next cho môi trường phát triển của mình, chiến thắng 't hỗ trợ điều hướng trực tiếp với định tuyến tùy chỉnh. Nếu tôi đúng, tạo một số liên kết đến các trang đó bằng thành phần <Link> của Next, bạn sẽ có thể điều hướng đến các trang được tạo của mình ở phía máy khách.

Chính thức đề xuất chi tiết của Zeit và của họ hướng dẫn từng bước chi tiết bạn cần thiết lập ứng dụng nút Express để xử lý định tuyến tùy chỉnh hoặc thiết lập thông tin định tuyến trong tệp cấu hình now.json. Điều này sẽ vượt qua thông tin truy vấn để chúng có thể được sử dụng trong getInitialProps.

Về cơ bản, để bắt đầu nhanh chóng, bạn sẽ thay thế lệnh dev trong package.json thành Nodejs thay vì Nextjs. Tôi cũng nên đề cập rằng now dev đã được công bố sẽ cung cấp môi trường phát triển mà không cần phải có ứng dụng máy chủ nút phụ.

    
1
2019-05-09 14: 17: 25Z
  1. CẢM ƠN BẠN! Điều đó đã giải quyết nó. Tôi đã thử một máy chủ tùy chỉnh nhưng không sửa tập lệnh npm của tôi.
    2019-05-09 16: 26: 00Z
nguồn đặt đây