- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在使用 DocPad 制作一个演示站点,我想将它部署在例如: http://www.example.com/demo/但是当我使用 docpad generate --env static
时,链接是相对于服务器的根而不是演示目录的,所以链接被破坏了。我能做什么 ?是否有要在某处声明的元数据?
编辑:在这种情况下,我使用 Twitter Bootsrap 骨架,因此例如默认布局中主导航中的链接如下所示:
<div class="nav-collapse collapse">
<ul class="nav">
<% for document in @getCollection('pages').toJSON(): %>
<li class="<%= 'active' if @document.url is document.url %>">
<a href="<%= document.url %>"><%= document.title %></a>
</li>
<% end %>
</ul>
</div>
最佳答案
我写了一个小插件来完成这项工作,可能有更好的解决方案,但它工作正常:
# Export Plugin
module.exports = (BasePlugin) ->
# Define Plugin
class absolutePathPlugin extends BasePlugin
# Plugin Name
name: 'absolutepath'
config:
url: "/"
renderAfter: (opts,next) ->
docpad = @docpad
if 'static' in docpad.getEnvironments()
docpad.log 'debug', 'Writing absolute urls'
href = 'href="' + @config.url
src = 'src="' + @config.url
database = docpad.getCollection('html')
database.forEach (document) ->
content = document.get('contentRendered')
if /href="\//.test(content)
content = content.replace(/href="\//g, href)
if /src="\//.test(content)
content = content.replace(/src="\//g, src)
document.set('contentRendered',content)
next()?
else
next()?
# Chain
@
在我的 docpad.coffee
文件中,我只需要配置 url,如果你使用 cleanUrls 插件,你必须调整 getRedirectTemplate 函数以考虑绝对 url:
plugins:
absolutepath:
url: "http://www.example.com/demo/"
cleanurls:
getRedirectTemplate: (document) ->
absolutepath = docpadConfig.plugins.absolutepath.url.slice(0, - 1)
"""
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>#{document.get('title') or 'Redirect'}</title>
<meta http-equiv="REFRESH" content="0;url=#{absolutepath + document.get('url')}">
</head>
<body>
This page has moved. You will be automatically redirected to its new location. If you aren't forwarded to the new page, <a href="#{absolutepath + document.get('url')}">click here</a>.
</body>
</html>
"""
关于docpad - 如何使用 DocPad 部署不在服务器根目录下的站点?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14245520/
“生产”环境在 docpad 部署指南的“to a node.js hosting provider”部分中指定,而“静态”环境在 "to static servers" 中指定。部分。 两者之间的真
我见过人们使用 docpad 写博客,但没有找到一个可以使用的博客框架。虽然 Docpad 与 Jekyll 相比,后者是静态站点生成器,但我想要像 Octopress 这样的东西,它纯粹是一个博客框
我正在使用 DocPad 制作一个演示站点,我想将它部署在例如: http://www.example.com/demo/但是当我使用 docpad generate --env static 时,链
我猜这可能是一个“丢失的案例”,但是是否可以用密码保护 DocPad 生成的一个或多个页面? 是否可以制作一个插件或其他东西,让您在页面的元数据部分中输入 protected = true ? 或者我
我想调整我的多语言 DocPad 博客,以便以 *.ru.md 结尾的页面进入/ru/目录,以 *.en.md 结尾的页面进入/en/目录。 假设这是初始结构 src/ pages/ pa
有没有一种方法可以在 Docpad 中为搜索结果编制索引的 native 搜索表单。动态搜索页面示例不起作用,查看代码对我没有任何帮助。我认为搜索表单示例和基本联系表单示例对于像我这样希望在工作流程中
如何以编程方式将脚本或样式表标签添加到页面的 YAML 前端(元)中指定的页面? 假设有 src/documents/posts/a.html.eco内容如下: --- layout: default
我正在制作一个投资组合,并希望使用 DocPad(使用 Backbone 集合)在每个项目详细信息页面上简单地打印下一个和上一个项目链接。这里的代码来自我的模板projects.html.eco。 @
如何从配置文件添加到块? 例如:通过执行以下操作来设置要包含在块中的脚本/样式列表: @getBlock('scripts').add([ '/vendor/jquery.js
对于集合,我想使用 docpad.coffee 中定义的助手,例如 getLang: (inLang) -> "/" + inLang + "/" ... myCollection: ->
我有一个项目,在 src/public/vendor 下保存第三方文件(与 Bower 一起安装)。自从我添加这些 docpad 后,生成 ./out 的速度似乎变得相当慢,毫无疑问是因为它会遍历所有
这是一个简单的问题,我很难找到答案。我刚刚开始使用docpad建立一个网站。我在 HTML5 Boilerplate 框架中遇到了以下行: 有谁知道这是做什么的吗?端点是它输出以下html: 但我
我只需要显示部分博文...带有指向完整博文的“阅读更多”链接。 主页:使用阅读更多列出最后 5 篇部分/介绍文章。 这在 Docpad 中是可能的吗? 谢谢.. 最佳答案 5 月 getCut
我一直在测试 docpad 作为 CMS,我想知道如何在我的主页中显示博客中的最新 5 篇文章。 我已经寻找过例子,但到目前为止还没有运气。 我需要一些插件来实现该功能吗?目前我使用以下模块: "
我确信我不是唯一一个不得不将静态站点部署到子目录的人。 事实上,我们有 www.example.com 和 mobile.example.com 以及 tablet.example.com。平板电脑和
当我点击 docpad generate 时,我想缩小 HTML、CSS 和 JavaScript 文件, 我怎样才能做到这一点? 最佳答案 有几种方法可以解决这个问题。最突出和最直接的方法是修改您的
我是 DocPad 的新手。我真的很喜欢静态页面生成的想法,并且已经考虑了一段时间,但是很高兴已经有一个成熟的项目了! 然而,虽然我对 DocPad 的工作原理有一个粗略的了解,但您认为创建简单的“联
在 Docpad 的文档中,它列出了一系列查询助手。这是link 。以下列表出现在底部。这些帮助器包括 @getCollection、@getFiles、@getFilesAtPath 等。但是没有任
我一直在使用 docpad 预生成前端 html/js 应用程序(使用 docpadgenerate --env static)。经过几次挂断和 balupton 的错误修复后,它现在工作得很好,并节
更新 npm 后,安装 docpad (npm install -g docpad) 我已经验证我的 PATH 有 git 和 npm。 我使用 docpad 运行 我得到了以下输出: C:\Work
我是一名优秀的程序员,十分优秀!