我正在尝试设置Strapi.io
安装,以便它在端口80上运行的现有Apache网站上工作。
详细信息:
- Strapi服务器在端口1337上运行。
- Strapi Server在/和Admin面板/Admin li>我的Apache网站在port 80上的http://example.com上运行
我已经编辑了我的apache配置文件并添加了以下行:
ProxyPass /admin http://localhost:1337/admin
ProxyPassReverse /admin http://localhost:1337/admin
ProxyPass /api http://localhost:1337/
ProxyPassReverse /api http://localhost:1337/
当前在/API页面上工作正常,而不是管理页面。在管理页面上,我得到以下控制台错误:
main.js:40个未被告人(有望)SyntaxError:意外的令牌<在 位置0的JSON 在r(main.js:40)r @ main.js:40 Promise.then(async)u @ main.js:1 ./node_modules/strapi-helper-plugin/lib/lib/src/src/src/app.js @ main.js:40 t @ main.js:1(匿名) @ main.js:1(匿名) @ main.js:1
main.js:45未被发现(诺言)语法:意外 token<在位置0的JSON中 在t(main.js:45)t @ main.js:45 promise..then(async)u @ main.js:1 ./node_modules/strapi-helper-plugin/lib/lib/src/src/app.js @ main.js:45 a @ main.js:1(匿名) @ main.js:1(匿名) @
main.js:1 main.js:40个未谋生(在承诺)语法:意外 token<在位置0的JSON中 在n(main.js:40)
如果我刷新页面,则main.js
的某些或全部为admin.js
。不确定是否有所作为:
main.js:40个未被告人(有望)SyntaxError:意外的令牌<在 位置0的JSON 在r(main.js:40)r @ main.js:40 Promise.then(async)u @ main.js:1 ./node_modules/strapi-helper-plugin/lib/lib/src/src/src/app.js @ main.js:40 t @ main.js:1(匿名) @ main.js:1(匿名) @ main.js:1
admin:1个未被告人(在承诺中)Syntaxerror:意外的令牌 <在位置0 promise.then(async)u @ main.js:1 ./node_modules/strapi-helper-plugin/lib/src/app.js @ main.js:40 t @ main.js:1(匿名) @ main.js:1(匿名) @ main.js:1
管理员:1 被取消(有望)SyntaxError:意外的令牌<在JSON AT 位置0
为什么我会遇到这个问题。我该怎么做才能使此操作正确地使用Apache服务器?
澄清:
这是一个非常简单的两分钟安装。我尚未开始向网站添加任何内容。我只是想让管理面板通过Apache工作。
apache默认情况下为响应其得到的任何请求而使用。
因此,我的第一个想法是添加
DirectoryIndex disabled
to .htaccess,因为strapi.io api在 /
root文件夹和apache返回默认的apache .html文件,这是覆盖API请求的apache .html文件。
到底发生了什么?
1.-您的JavaScript应用(strapi.io)在您的API点要求data.json
,并获得index.html的内容。
2.-由于index.html的内容不是JSON,并从<
开始,因此会引发错误消息。JSON文件不能以<
开头。
您可能会遇到问题,因为Strapi当前没有实现URL前缀。
为了解决这个问题,您可能需要使用"/"而不是"/api"的根目录上的端口80上的子域或运行strapi。如果您在同一Apache服务器上有其他项目或应用程序,则可以使用ProxyPassMatch忽略这些路径。例如:
ProxyPassMatch ^/otherproject !
ProxyPass "/" http://localhost:1337/
ProxyPassReverse "/" http://localhost:1337/
在这种情况下,"/admin"路由也将在没有进一步修改的情况下工作。
另外,有些人使用Strapi中间件将前缀应用于其路线(请参见此处的示例)。