Score:-2

เหตุใดจึงเกิดข้อยกเว้นขึ้นเมื่อฉันใส่โทเค็นเป็นค่าของแอตทริบิวต์ html src

ธง sa

วิธีเพิ่มข้อยกเว้น:

ในช่อง text_area ใดๆ โดยใช้ ckeditor ให้ใส่โค้ดต่อไปนี้ <img src="[node:my_custom_token]"> และบันทึกแบบฟอร์ม

คุณจะได้รับข้อผิดพลาดต่อไปนี้: (สมมติว่าแบบฟอร์มที่แก้ไขคือ http://mysite/fr/node/8/edit)

ไม่พบหน้า|127.0.0.1|http://mysite/fr/node/8/[node:my_custom_token]

มันคือ ไม่พบข้อยกเว้น Http โยนเข้ามา RouterListener

นี่คือร่องรอย

การเรียกภายใน PHP Symfony\Component\HttpKernel\EventListener\RouterListener->onKernelRequest(Symfony\Component\HttpKernel\Event\GetResponseEvent $event)
<ROOT>/core/lib/Drupal/Component/EventDispatcher/ContainerAwareEventDispatcher.php:142 call_user_func($function_name, $parameters)
<ROOT>/vendor/symfony/http-kernel/HttpKernel.php:134 Drupal\Component\EventDispatcher\ContainerAwareEventDispatcher->dispatch($event)
<ROOT>/vendor/symfony/http-kernel/HttpKernel.php:80 Symfony\Component\HttpKernel\HttpKernel->handleRaw(Symfony\Component\HttpFoundation\Request $request, int $type = 1)
<ROOT>/core/lib/Drupal/Core/StackMiddleware/Session.php:57 Symfony\Component\HttpKernel\HttpKernel->handle(Symfony\Component\HttpFoundation\Request $request, $type = 1, $catch = จริง)
<ROOT>/core/lib/Drupal/Core/StackMiddleware/KernelPreHandle.php:47 Drupal\Core\StackMiddleware\Session->handle(Symfony\Component\HttpFoundation\Request $request, $type = 1, $catch = จริง)
<ROOT>/core/modules/page_cache/src/StackMiddleware/PageCache.php:106 Drupal\Core\StackMiddleware\KernelPreHandle->handle(Symfony\Component\HttpFoundation\Request $request, $type = 1, $catch = จริง)
<ROOT>/core/modules/page_cache/src/StackMiddleware/PageCache.php:85 Drupal\page_cache\StackMiddleware\PageCache->pass(Symfony\Component\HttpFoundation\Request $request, $type = 1, $catch = จริง)
<ROOT>/core/lib/Drupal/Core/StackMiddleware/ReverseProxyMiddleware.php:47 Drupal\page_cache\StackMiddleware\PageCache->handle(Symfony\Component\HttpFoundation\Request $request, $type = 1, $catch = จริง)
<ROOT>/core/lib/Drupal/Core/StackMiddleware/NegotiationMiddleware.php:52 Drupal\Core\StackMiddleware\ReverseProxyMiddleware->handle(Symfony\Component\HttpFoundation\Request $request, $type = 1, $catch = จริง)
<ROOT>/vendor/stack/builder/src/Stack/StackedHttpKernel.php:23 Drupal\Core\StackMiddleware\NegotiationMiddleware->handle(Symfony\Component\HttpFoundation\Request $request, $type = 1, $catch = true)
<ROOT>/core/lib/Drupal/Core/DrupalKernel.php:716 Stack\StackedHttpKernel->handle(Symfony\Component\HttpFoundation\Request $request, $type = 1, $catch = true)
Baud avatar
sa flag
คุณคิดที่จะอธิบายการโหวตลง ฉันคิดว่ามันมีค่าสำหรับทุกคนที่จะเข้าใจกระบวนการที่อยู่เบื้องหลัง "การตรวจสอบ" (โดย ckeditor?) ของ url ในแอตทริบิวต์ html เช่น src
Jaypan avatar
de flag
โทเค็นของคุณไม่ได้รับการแทนที่ ฉันไม่สามารถบอกคุณได้ว่าทำไม บางทีตัวกรองข้อความที่คุณใช้อาจไม่ได้แทนที่โทเค็น จะไม่มีส่วนเกี่ยวข้องกับตัวแก้ไขของคุณ
Baud avatar
sa flag
ขอบคุณ @Jaypan. คำถามของฉันไม่เกี่ยวกับการแทนที่โทเค็น แต่ฉันต้องการที่จะเข้าใจว่ากระบวนการ/รหัสใดที่ตรวจสอบความถูกต้องของ URL ของแอตทริบิวต์ image src นี่ไม่ใช่คำถามเกี่ยวกับโทเค็น: ข้อยกเว้นจะเกิดขึ้นหากคุณแทนที่โทเค็นด้วยสตริง เช่น "i_am_not_a_token"
Kevin avatar
in flag
โทเค็นจะไม่ถูกแทนที่เมื่อแสดงผลเทมเพลต/เพจ ดังนั้นเบราว์เซอร์จึงขอ URL ที่ไม่มีอยู่ นั่นคือโดยพื้นฐานแล้ว ตัวกรองไม่ได้ประมวลผลโทเค็น หรือมีบางอย่างผิดปกติในตรรกะโทเค็นที่คุณกำหนดเอง
Jaypan avatar
de flag
เควินกรอกเหตุผลว่าทำไมคำตอบที่ฉันให้ไว้ทำให้เกิดข้อผิดพลาดที่คุณเห็น
Score:3
ธง us

หากคุณกำลังแก้ไขเอนทิตีและคุณบันทึกเอนทิตี คุณจะถูกนำไปที่หน้าที่แสดงเอนทิตี
เช่นเดียวกับในเนื้อหาเอนทิตีที่คุณเพิ่ม <img src="[node:my_custom_token]">เบราว์เซอร์พยายามเข้าถึง http://your-site-domain/[node:my_custom_token] เพื่อรับข้อมูลรูปภาพสำหรับรูปภาพที่ควรแสดง Drupal ไม่พบเส้นทางใดๆ ที่เชื่อมโยงกับ URL นั้นและบันทึก ไม่พบหน้านี้ เกิดข้อผิดพลาดและส่งข้อยกเว้น

ซึ่งไม่เกี่ยวข้องกับการใช้โทเค็น เนื่องจากอาจเกิดขึ้นได้หากคุณป้อน URL สำหรับไซต์ของคุณที่ไม่มีอยู่จริง สำหรับ src คุณลักษณะ.

หากคุณสงสัยว่าเหตุใดจึงไม่แทนที่โทเค็น นั่นเป็นเพราะฟิลด์ฟอร์มเอนทิตีไม่ได้ตั้งค่าให้แทนที่โทเค็น ซึ่งสามารถเกิดขึ้นได้เมื่อฟิลด์เอนทิตีเป็น ข้อความ (จัดรูปแบบ ยาว) ฟิลด์ที่ไม่มีการตั้งค่าตัวกรองอินพุตสำหรับโทเค็นการจัดการรูปแบบ

Baud avatar
sa flag
ขอขอบคุณ!! สิ่งที่แปลกคือความจริงที่ว่าไซต์ไม่ได้เปลี่ยนเส้นทางไปยังหน้าที่แสดงเอนทิตี (กำหนดเอง) ดังนั้นฉันจึงไม่รู้ว่าการเรนเดอร์เกิดขึ้นที่ใด... อย่างไรก็ตาม เกี่ยวกับ "Drupal ไม่พบเส้นทางใดๆ ที่เชื่อมโยงกับ URL นั้น และมันจะบันทึกข้อผิดพลาด Page not found และส่งข้อยกเว้น" เป็นไปได้ไหมที่จะหลีกเลี่ยง? [FYI: นี่คือเอนทิตีการกำหนดค่าซึ่งจัดเก็บเทมเพลต (html + โทเค็น) เพื่อผลิต pdf ในส่วนอื่นของไซต์]
apaderno avatar
us flag
คำถามระบุว่าแบบฟอร์มอยู่ใน http://mysite/fr/node/8/edit นั่นคือเอนทิตีของโหนด ไม่ใช่เอนทิตีการกำหนดค่า
Baud avatar
sa flag
คุณพูดถูก อย่าทำให้คำถามซับซ้อนเกินไป...เป็นความคิดที่แย่มาก!!! เส้นทางจริงคือ `admin/structure/token_templates/pdf_aw_card_body/edit` โดยที่ `pdf_aw_card_body` คือ id ของเอนทิตีการกำหนดค่าของฉัน (ก่อนที่จะถามคำถามที่นี่ ฉันทดสอบด้วยเส้นทางโหนดแก้ไขปกติและข้อยกเว้นก็เพิ่มขึ้นเช่นกัน... )

โพสต์คำตอบ

คนส่วนใหญ่ไม่เข้าใจว่าการถามคำถามมากมายจะปลดล็อกการเรียนรู้และปรับปรุงความสัมพันธ์ระหว่างบุคคล ตัวอย่างเช่น ในการศึกษาของ Alison แม้ว่าผู้คนจะจำได้อย่างแม่นยำว่ามีคำถามกี่ข้อที่ถูกถามในการสนทนา แต่พวกเขาไม่เข้าใจความเชื่อมโยงระหว่างคำถามและความชอบ จากการศึกษาทั้ง 4 เรื่องที่ผู้เข้าร่วมมีส่วนร่วมในการสนทนาด้วยตนเองหรืออ่านบันทึกการสนทนาของผู้อื่น ผู้คนมักไม่ตระหนักว่าการถามคำถามจะมีอิทธิพลหรือมีอิทธิพลต่อระดับมิตรภาพระหว่างผู้สนทนา