Rust WebAssembly应用部署到Apache服务器后无法运行的问题
问题原因及解决办法
1. 缺少入口HTML文件
你只上传了JS和Wasm构建文件,但浏览器需要一个HTML页面作为入口来加载这些脚本。没有HTML的情况下,Apache会默认展示目录文件列表,不会运行你的Wasm应用。
解决办法:创建index.html文件,放在构建文件的同级目录,内容示例:
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>Rust Wasm App</title> </head> <body> <script src="./bootstrap.js"></script> </body> </html>
将该HTML文件与构建文件一同上传到Apache服务器的网站根目录。
2. Apache未配置默认索引页
即便你有index.html,如果Apache配置中未将其设为默认索引文件,服务器仍会显示目录列表。
解决办法:
- 方式一:修改Apache的
httpd.conf或站点配置文件,确保DirectoryIndex包含index.html:DirectoryIndex index.html index.htm - 方式二:在网站根目录创建
.htaccess文件,添加以下内容:DirectoryIndex index.html
3. 构建文件路径不匹配
你的Webpack配置输出目录是dist,但上传的是build目录下的文件,这会导致脚本引用路径错误(比如bootstrap.js找不到Wasm文件或index.js)。
解决办法:
- 确认Webpack构建产物在
dist目录,上传时将dist内所有文件(包括自动生成的0.bootstrap.js、Wasm文件)与index.html一同上传到Apache站点根目录。 - 检查HTML中
bootstrap.js的引用路径是否与实际文件位置一致,避免路径错误导致脚本加载失败。
4. Apache未正确配置Wasm的MIME类型
Apache默认未给.wasm文件设置正确的MIME类型,浏览器无法正确解析Wasm文件,会导致应用加载失败。
解决办法:
- 在
httpd.conf或站点配置中添加:AddType application/wasm .wasm - 或在
.htaccess中添加:AddType application/wasm .wasm
内容的提问来源于stack exchange,提问作者Shingai Munyuki
相关产品推荐
相关产品推荐

