Unity发布WebGL本地网站部署Web.config

Failed to download file Build/WebGL.data.gz. Loading web pages via a file:// URL without a web server is not supported by this browser. Please use a local development web server to host Unity content, or use the Unity Build and Run option.

一:部署本地网络服务器进行测试

①打开Web服务,打开控制面板-->程序-->启用或关闭功能-->Internet Infomation Services,全部打勾,确认即可

②网站配置,点击此电脑,点击右键-->管理-->服务和应用程序-->Internet Infomation Services--网站

③新建一个网站:

        首先将打包出来的WebGL项目放置到对应路径(比如:E:\WebGlTest\TestWebGL_LaoZhaSheBei)

        接着点击网站-->新建一个网站

 最后在网页上输入:127.0.0.1:8080查看效果即可

端口可以填9000,10000,避免与其他网页产生冲突
                       

二:Web.config

在项目所在的文件夹中添加Web.config配置文件

web.config :

<?xml version="1.0" encoding="utf-8"?>
<!--
  有关如何配置 ASP.NET 应用程序的详细信息,请访问
  https://go.microsoft.com/fwlink/?LinkId=169433
-->
<configuration>  
  <system.webServer>
    <httpProtocol>
      <!-- 允许跨域配置 -->
      <customHeaders>
        <add name="Access-Control-Allow-Origin" value="*" />
        <add name="Access-Control-Allow-Headers" value="X-Requested-With,Content-Type,Authorization" />
        <add name="Access-Control-Allow-Methods" value="GET, POST, PUT, DELETE,OPTIONS" />
        <add name="Access-Control-Allow-Credentials" value="true" />
      </customHeaders>
    </httpProtocol>
        <staticContent>
            <remove fileExtension=".mem" />  
            <remove fileExtension=".data" />  
            <remove fileExtension=".unity3d" />  
            <remove fileExtension=".jsbr" />  
            <remove fileExtension=".membr" />  
            <remove fileExtension=".databr" />  
            <remove fileExtension=".unity3dbr" />  
            <remove fileExtension=".jsgz" />  
            <remove fileExtension=".memgz" />  
            <remove fileExtension=".datagz" />  
            <remove fileExtension=".unity3dgz" />  
            <remove fileExtension=".json" />  
            <remove fileExtension=".unityweb" />  
           
            <mimeMap fileExtension=".mem" mimeType="application/octet-stream" />  
            <mimeMap fileExtension=".data" mimeType="application/octet-stream" />  
            <mimeMap fileExtension=".unity3d" mimeType="application/octet-stream" />  
            <mimeMap fileExtension=".jsbr" mimeType="application/octet-stream" />  
            <mimeMap fileExtension=".membr" mimeType="application/octet-stream" />  
            <mimeMap fileExtension=".databr" mimeType="application/octet-stream" />  
            <mimeMap fileExtension=".unity3dbr" mimeType="application/octet-stream" />  
            <mimeMap fileExtension=".jsgz" mimeType="application/x-javascript; charset=UTF-8" />  
            <mimeMap fileExtension=".memgz" mimeType="application/octet-stream" />  
            <mimeMap fileExtension=".datagz" mimeType="application/octet-stream" />  
            <mimeMap fileExtension=".unity3dgz" mimeType="application/octet-stream" />  
            <mimeMap fileExtension=".json" mimeType="application/json; charset=UTF-8" />  
            <mimeMap fileExtension=".unityweb" mimeType="application/octet-stream" />  
        </staticContent>
  </system.webServer>
</configuration>


最后在网页上输入:127.0.0.1:8080查看效果即可 ,此时可能遇到提示权限不足无法打开配置文件的问题

 右击文件夹->属性->安全,点击编辑,添加 Everyone用户 赋予它所有权限

 最后重新刷新网页就可以打开生成的WebGL项目啦

127.0.0.1:8080
————————————————
                        
原文链接:https://blog.csdn.net/qq_32803337/article/details/131240516

  • 5
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Unity WebGL 中,使用 `Microsoft.Web.Administration` 库会出现编译错误,因为该库是基于 Windows Server 上的 IIS 管理器开发的,而不是基于浏览器的 WebGL 环境。 如果需要在 Unity WebGL 中进行 Web 开发,可以使用 JavaScript 或 TypeScript 语言编写代码,并结合 HTML、CSS 等前端技术来实现。可以使用 Unity 提供的 `Application.ExternalEval` 方法来在 JavaScript 和 C# 之间进行通信。 以下是在 Unity WebGL 中使用 JavaScript 实现启动本地 HTTP 服务器的示例代码: ```javascript function startHttpServer() { var http = require('http'); var fs = require('fs'); var path = require('path'); var server = http.createServer(function (req, res) { var filePath = '.' + req.url; if (filePath == './') { filePath = './index.html'; } var extname = path.extname(filePath); var contentType = 'text/html'; switch (extname) { case '.js': contentType = 'text/javascript'; break; case '.css': contentType = 'text/css'; break; case '.json': contentType = 'application/json'; break; case '.png': contentType = 'image/png'; break; case '.jpg': contentType = 'image/jpg'; break; case '.wav': contentType = 'audio/wav'; break; } fs.readFile(filePath, function(error, content) { if (error) { if(error.code == 'ENOENT'){ res.writeHead(404); res.end('404 Not Found'); res.end(); } else { res.writeHead(500); res.end('500 Internal Server Error'); res.end(); } } else { res.writeHead(200, { 'Content-Type': contentType }); res.end(content, 'utf-8'); } }); }); server.listen(8000); } ``` 在上述 JavaScript 代码中,使用 Node.js 的 `http` 模块来创建一个本地 HTTP 服务器,监听端口为 8000。在浏览器中访问 `http://localhost:8000`,即可看到当前目录下的文件列表,点击相应文件即可下载。 在 Unity C# 代码中,使用 `Application.ExternalEval` 方法来调用 JavaScript 代码,示例代码如下: ```csharp using UnityEngine; public class HttpServer : MonoBehaviour { void Start() { Application.ExternalEval("startHttpServer();"); } } ``` 在 `Start` 方法中,使用 `Application.ExternalEval` 方法调用 JavaScript 代码中的 `startHttpServer` 函数,启动本地 HTTP 服务器。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值