我想要做的是将 ghost 托管在虚拟目录或应用程序中,例如:
www.mysite.com/blog
我目前已经安装了什么
- IIS 8-URL 重写 2
- Node.js v0.10.24
- x64 Ghost 0.3.3 iisnode x64
我按照说明进行操作鬼魂论坛中的这个帖子
当我尝试浏览它时,我得到了一个404 错误. 到目前为止这是我的网络配置:
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<system.webServer>
<handlers>
<add name="iisnode" path="index.js" verb="*" modules="iisnode" />
</handlers>
<iisnode
nodeProcessCommandLine=""%programfiles%\nodejs\node.exe""
interceptor=""%programfiles%\iisnode\interceptor.js"" />
<rewrite>
<rules>
<rule name="LogFile" patternSyntax="ECMAScript" stopProcessing="true">
<match url="iisnode" />
</rule>
<rule name="DynamicContent">
<conditions>
<add input="{{REQUEST_FILENAME}}" matchType="IsFile" negate="True" />
</conditions>
<action type="Rewrite" url="index.js" />
</rule>
</rules>
</rewrite>
</system.webServer>
</configuration>
和我的生产配置
production: {
url: 'http://www.mysite.com/blog',
mail: {},
database: {
client: 'sqlite3',
connection: {
filename: path.join(__dirname, '/content/data/ghost.db')
},
debug: false
},
server: {
// Host to be passed to node's `net.Server#listen()`
host: '127.0.0.1',
// Port to be passed to node's `net.Server#listen()`, for iisnode set this to `process.env.PORT`
port: process.env.PORT
}
}
我是 node.js 服务的新手,如能得到任何帮助我将不胜感激!
答案1
我知道这有点晚了,但当我尝试设置 Ghost 1.7.* 时也出现了同样的错误。我所做的就是更改重写规则,如下所示:
<rewrite>
<rules>
<rule name="LogFile" patternSyntax="ECMAScript" stopProcessing="true">
<match url="iisnode" />
</rule>
<rule name="DynamicContent">
<conditions>
<add input="{{REQUEST_FILENAME}}" matchType="IsFile" negate="True" />
</conditions>
<action type="Rewrite" url="/blog/index.js" />
</rule>
</rules>
</rewrite>
我在这里写了这篇文章:http://huytn.com/setup-ghost-blog-version-1-for-iis/ 操作网址将具有url="/blog/index.js"例如。
<action type="Rewrite" url="/blog/index.js" />