如何自定义tumblr 404 URL未找到的页面

时间:2013-05-22 09:05:12

标签: html css tumblr

似乎Tumblr没有提供div标签来自定义“未找到网址”页面的外观。 有没有其他方法来自定义404(URL NOT FOUND)页面?

4 个答案:

答案 0 :(得分:5)

编辑:此方法仅适用于没有的tumblog。

提问提交,使用此代码检测到“自定义”部分中创建的其他网页为“未找到”。


描述

Tumblr对静态页面使用正常的{block:Posts}循环,但没有分配任何变量,如{PostID}。如果我们使用类似post{PostID}的类,在 404页面 所有静态页面,我们将看到.post元素,而在帖子上元素类似于.post125678

实施例

{block:Posts}
  <div class="post{PostID}">
    {block:Photo}all your blocks here{/block:Photo}
  </div>
{/block:Posts}

使用javascript:

var is404 = document.getElementsByClass('post').length;

使用CSS:

.post {
    /*this is a 404 page, customize it*/
}

酷酷的javascript-less示例

{block:Posts}
  <div class="post{PostID}">
    {block:Photo}all your blocks here{/block:Photo}
  </div>
{/block:Posts}
<div class="fill-me"></div>

在CSS中:

.post { /*Hide Tumblr's 404 message*/
    display: none;
}
.post + .fill-me:before { /*use your message and style*/
    content: 'This page was not found!';
    font-size: 2em;
}

编辑:可能的修复

要修复此方法,我们应该找到仅在页面上显示但不在404页面上显示的{tag}。

{ShortURL},如果它没有错误,可以使用,因为理论上404页面不应该有ShortURL。

我也试过{Permalink},但在这种情况下它的行为类似于{PostID}

答案 1 :(得分:3)

可悲的是,没有正式的方法可以做到这一点。

但是,如果你使用javascript / jQuery,你可以嗅探以下文字:

  

无法找到您请求的网址

示例jQuery代码:

$(document).ready(function() {
    $("p:contains(The URL you requested could not be found.)").html('YOUR TEXT HERE');
});

我会更倾向于将一个类添加到父/ body元素中,这样您就可以以不同的方式设置整个页面的样式。

希望有所帮助。

答案 2 :(得分:0)

这对我有用

<script type="text/javascript">
/* Works for me */
    var text_posts = document.getElementsByClassName("regular");
    var text_404 = "The URL you requested could not be found.";
    var title_404 = "Not Found";
    if(text_posts.length == 1){
        var bodyNode = text_posts[0].lastChild;
        if(bodyNode.previousSibling.textContent == text_404) {
            // titleNode.innerHTML = "<a href='/'>Not Found</a>";
            var blog_loc = "http://" + document.domain + "/";
            var query = window.location.href.slice(blog_loc.length);
            var tokens = query.toLowerCase().split('/');
            var keyword = tokens.join(" ");
            var bodyContent = "Looks like you came from an old bookmark, or just looking for a page that doesn't exist. Were you looking for <span class='tg'><a href='/search/"+ escape(keyword) +"'>"+keyword+"</a></span>";
            bodyNode.previousSibling.innerHTML = bodyContent;
        }
    }
</script>

答案 3 :(得分:0)

我也在研究这个问题,我找到了答案。 如果你有404错误页面,该帖子没有任何PostID, 所以你可以检查{PostID}是否为空,检查它是否为404页。