某些節點存在於數據庫中時顯示404狀態。如果您輸入網址以在管理頁面中編輯該節點,也會得到一個404。Drupal節點在存在時顯示404
這些節點正在數據庫中以CSV文件自動創建。我想問的是哪些數據庫字段會在節點上觸發404?
我檢查了url_alias表,並且節點有有效的條目。即:如果我在URL中輸入example.com/node/512682,它會重定向到SEF url,但是會顯示404
某些節點存在於數據庫中時顯示404狀態。如果您輸入網址以在管理頁面中編輯該節點,也會得到一個404。Drupal節點在存在時顯示404
這些節點正在數據庫中以CSV文件自動創建。我想問的是哪些數據庫字段會在節點上觸發404?
我檢查了url_alias表,並且節點有有效的條目。即:如果我在URL中輸入example.com/node/512682,它會重定向到SEF url,但是會顯示404
您'從CSV'自動創建代碼是否也在'node_revisions'表中創建條目?如果沒有,這將解釋404s - 即使你已經禁用修改節點類型,Drupal仍然期望每個節點至少有一個條目。
您也可以在您的導入中創建這些文件,但我同意Scott Reynen(+1)的說法,您應該使用node_save()
來確保正確處理新創建的節點(特別是調用相關鉤子)以防止其他意外以及。
這正是問題所在。一些條目缺少node_revisions中的相應條目。謝謝。 – bucabay 2010-03-16 17:30:18
我結束了沒有涉及任何遷移/導入的同樣的問題。相信它來自發生的不完整/腐敗保存。我試過使用視圖批量操作頁面來觸發節點保存...但沒有運氣我堅持至少有一個節點卡住了時間裂痕。 – doublejosh 2011-11-18 21:15:34
這聽起來像您的導入有缺陷,但很難知道沒有更多信息。你用過node_save()嗎?如果沒有,你應該嘗試。如果仍然不起作用,試着在node_save()之後立即查看$ node對象,看它是否有新的nid值。如果沒有,則不會將正確的信息傳遞給node_save()。如果你確實得到一個新的nid值並且節點仍然不會加載,我會開始查看可能會破壞Drupal的模塊。但是我把錢轉到node_save()來解決問題。
這是一個很好的建議。我最終可能會考慮到這一點,會觸發擴展可能需要的掛鉤...... – bucabay 2010-03-16 00:48:06
檢查正在運行的查詢。我們遇到了同樣的問題,導致進口商使用不存在的uid創建條目。當查詢Drupal與用戶表加入並返回空時。
SELECT n.nid, n.type, n.language, n.uid, n.status, n.created, n.changed, n.comment,
n.promote, n.moderate, n.sticky, n.tnid, n.translate, r.vid, r.uid AS revision_uid,
r.title, r.body, r.teaser, r.log, r.timestamp AS revision_timestamp, r.format, u.name,
u.picture, u.data FROM node n INNER JOIN users u ON u.uid = n.uid INNER JOIN
node_revisions r ON r.vid = n.vid WHERE n.nid = <some-number>
您可以確定使用devel模塊。將它指向您認爲應顯示模塊的URL並查看它創建的查詢。
確定它們已發佈? – 2010-03-15 22:09:21