node.js - 您无权查看 Azure Ionic App 的此目录或页面

标签 node.js cordova azure typescript ionic2

我的 Ionic2 Node.js 应用程序在本地运行,我使用 GitBash 成功将其推送到 azure。

浏览时显示:

"You do not have permission to view this directory or page."

我确实添加了

web.config、process.json、index.js、

"start": "node index.js" 

在 package.json 和“azure mobile service”插件中。

没有任何进展。有人可以帮忙吗?谢谢...

Simple ionic blank project

网络配置:

<configuration>
<system.webServer>
      <handlers>
        <add name="iisnode" path="index.js" verb="*" modules="iisnode"/>
      </handlers>
      <rewrite>
            <rules>
                <rule name="SPA">
                    <match url=".*" />
                    <conditions logicalGrouping="MatchAll">
                        <add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" />
                        <add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" />
                        <add input="{REQUEST_URI}" pattern="^/(api)" negate="true" />
                    </conditions>
                    <action type="Rewrite" url="/" />
                </rule>
            </rules>
        </rewrite>
</system.webServer>
</configuration> 

流程.json:

{
  "name": "worker",
  "script": "./index.js",
  "instances": 1,
  "merge_logs": true,
  "log_date_format": "YYYY-MM-DD HH:mm Z",
  "watch": true,
  "watch_options": {
    "followSymlinks": true,
    "usePolling": true,
    "interval": 5
  }
}

package.json:

{
  "name": "io.cordova.myappd3d469",
  "author": "",
  "homepage": "",
  "private": true,
  "scripts": {
    "start": "node index.js",
    "clean": "ionic-app-scripts clean",
    "build": "ionic-app-scripts build",
    "ionic:build": "ionic-app-scripts build",
    "ionic:serve": "ionic-app-scripts serve",
    "watch": "ionic-app-scripts watch"
  },
  "dependencies": {
    "@angular/common": "2.2.1",
    "@angular/compiler": "2.2.1",
    "@angular/compiler-cli": "2.2.1",
    "@angular/core": "2.2.1",
    "@angular/forms": "2.2.1",
    "@angular/http": "2.2.1",
    "@angular/platform-browser": "2.2.1",
    "@angular/platform-browser-dynamic": "2.2.1",
    "@angular/platform-server": "2.2.1",
    "@ionic/storage": "1.1.7",
    "ionic-angular": "2.0.1",
    "ionic-native": "2.4.1",
    "ionicons": "3.0.0",
    "rxjs": "5.0.0-beta.12",
    "sw-toolbox": "3.4.0",
    "zone.js": "0.6.26"
  },
  "devDependencies": {
    "@ionic/app-scripts": "1.1.0",
    "typescript": "2.0.9"
  },
  "description": "Ionic2Blank: An Ionic project",
  "cordovaPlugins": [
    "cordova-plugin-whitelist",
    "cordova-plugin-console",
    "cordova-plugin-statusbar",
    "cordova-plugin-device",
    "cordova-plugin-splashscreen",
    "ionic-plugin-keyboard"
  ],
  "cordovaPlatforms": [],
  "-vs-binding": {
    "BeforeBuild": [ "ionic:build" ]
  }
}

index.js:

var http = require('http');

var server = http.createServer(function (request, response) {

    response.writeHead(200, { "Content-Type": "text/plain" });
    response.end("Hello World!");

});

var port = process.env.PORT || 1337;
server.listen(port);

console.log("Server running at http://localhost:%d", port);

Azure Web 应用程序设置:

enter image description here

最佳答案

您可以使用以下web.config来代替:

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
    <system.webServer>
        <handlers>
            <add name="iisnode" path="index.js" verb="*" modules="iisnode" />
        </handlers>
        <rewrite>
            <rules>
                <!-- First we consider whether the incoming URL matches a physical file in the /public folder -->
                <rule name="StaticContent">
                    <action type="Rewrite" url="public{REQUEST_URI}" />
                </rule>
                <!-- All other URLs are mapped to the node.js site entry point -->
                <rule name="DynamicContent">
                    <conditions>
                        <add input="{REQUEST_FILENAME}" matchType="IsFile" negate="True" />
                        <add input="{REQUEST_URI}" pattern="^/(api)" negate="true" />
                    </conditions>
                    <action type="Rewrite" url="index.js" />
                </rule>
            </rules>
        </rewrite>
    </system.webServer>
</configuration>

关于node.js - 您无权查看 Azure Ionic App 的此目录或页面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47032966/

相关文章:

node.js - Jupyterhub 可配置 Http 代理问题

node.js - 在 Azure Bot Framework (Nodejs) 中使用 session.send 向对话发送 Webhook 响应

javascript - 使用 DataURI 图像提高 CSS url() 的性能

javascript - 在 Node 中使用 module.exports 以获得更好的结构

javascript - MySQL 数据库中上传文件夹的 Multer 文件地址格式不正确

android - 如何使用 Phonegap Build 设置 Android 权限?

javascript - 在 webview 中打开外部网站

azure - 微软Azure : How to setup Contributor-role User Groups for separate Resource Groups?

azure - 用于图像上传的 Service Fabric 方法

c# - 用于 Windows Azure 崩溃的 DevFC.exe(Development Fabric)