1
나는 기본 캡처 값 경로가 :Mojolicious route 매개 변수가 렌더링되지 않는 이유는 무엇입니까?
my $api = $r->under('/api/v:api', [ api => qr/\d+/ ], { api => 1 })->name('api');
내가이 길 내가 /api/v
얻을 render
경우 :
$api->render; # /api/v
그것은 OK,하지만 난 그것을 렌더링되지 않습니다 렌더링 버전을 강제로 할 때 :
$api->render({ api => 1 }); # RESULT: /api/v EXPECT: /api/v1
나는 1 값을
를 기본으로 동일 심지어이 기대하고 있지 않다Mojolicious 라우트 매개 변수가 강제로 렌더링되지 않는 이유는 무엇입니까?
당신이 옳지 않습니다. 괄호 안에는 아무런 문제가 없습니다. 문제는 [여기] (https://metacpan.org/source/SRI/Mojolicious-7.28/lib/Mojolicious/Routes/Pattern.pm#L72)입니다. palaceholder 값이 다음 번 검사를 통해 렌더링되어야하는지 확인해야합니다 :'|| $ values -> {$ value}' –
이 수정 테스트가 실패하더라도 우리는 실패합니다. 이 버그로 인해 캐싱에 더 심각한 문제가 발생하기 때문입니다. 버전이 렌더링되지 않아'/ api/v1/index.html'을 상상해보십시오.이 페이지의 이미지는'/ api/v/image.jpg'로 렌더링됩니다. 다음에 우리는 백엔드를 업그레이드하고 버전 2를 구현할 것입니다. 응용 프로그램은'/ api/v2/index.html'을 쿼리 할 것이지만 이미지 링크는'/ api/v/image.jpg'가 될 것입니다. 따라서 예상되는 버전 2 대신에 이미지 버전 1을 표시하게됩니다. –
'/ api/v '요청이 왔을 때에도'/ api/v1/image.jpg'가 렌더링 될 것입니다. –